|  | // Protocol Buffers - Google's data interchange format | 
|  | // Copyright 2011 Google Inc.  All rights reserved. | 
|  | // | 
|  | // 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. | 
|  |  | 
|  | syntax = "proto2"; | 
|  |  | 
|  | import "google/protobuf/any.proto"; | 
|  | import "google/protobuf/unittest.proto"; | 
|  |  | 
|  | package protobuf_unittest; | 
|  |  | 
|  | // Used to check that Headerdocs and appledoc work correctly. If these comments | 
|  | // are not handled correctly, Xcode will fail to build the tests. | 
|  | message TestGeneratedComments { | 
|  | // This is a string that could contain stuff like | 
|  | // mime types as image/* or */plain. Maybe twitter usernames | 
|  | // like @protobuf, @google or @something. | 
|  | optional string string_field = 1; | 
|  | } | 
|  |  | 
|  | // Using the messages in unittest.proto, setup for recursive cases for testing | 
|  | // extensions at various depths. | 
|  | extend TestAllExtensions { | 
|  | optional TestAllExtensions recursive_extension = 86; | 
|  | } | 
|  |  | 
|  | // Recursive message to for testing autocreators at different depths. | 
|  | 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; | 
|  | } | 
|  |  | 
|  | // Message with a few types of maps to cover the different custom flows | 
|  | // in the runtime. | 
|  | message TestMessageOfMaps { | 
|  | map<string, string> str_to_str = 1; | 
|  |  | 
|  | map<string, int32> str_to_int = 2; | 
|  | map<int32, string> int_to_str = 3; | 
|  | map<int32, int32> int_to_int = 4; | 
|  |  | 
|  | map<string, bool> str_to_bool = 5; | 
|  | map<bool, string> bool_to_str = 6; | 
|  | map<bool, bool> bool_to_bool = 7; | 
|  |  | 
|  | map<int32, bool> int_to_bool = 8; | 
|  | map<bool, int32> bool_to_int = 9; | 
|  |  | 
|  | map<string, TestAllTypes> str_to_msg = 10; | 
|  | map<int32, TestAllTypes> int_to_msg = 11; | 
|  | map<bool, TestAllTypes> bool_to_msg = 12; | 
|  | } | 
|  |  | 
|  | // Recursive message and extension to for testing autocreators at different | 
|  | // depths. | 
|  | message TestRecursiveExtension { | 
|  | optional TestRecursiveExtension recursive_sub_message = 1; | 
|  | repeated int32 repeated_value = 2; | 
|  | extensions 1000 to max; | 
|  | } | 
|  |  | 
|  | extend TestRecursiveExtension { | 
|  | optional TestRecursiveExtension recursive_message_extension = 1000; | 
|  | } | 
|  |  | 
|  | message self { | 
|  | message super { | 
|  | optional int32 description = 1; | 
|  | } | 
|  |  | 
|  | enum autorelease { | 
|  | retain      = 1; | 
|  | release     = 2; | 
|  | retainCount = 3; | 
|  | } | 
|  |  | 
|  | // Singular | 
|  | // Objective C Keywords | 
|  | optional bool id                =  1; | 
|  | optional bool _cmd              =  2; | 
|  | // super is used as submessage above | 
|  | optional bool in                =  4; | 
|  | optional bool out               =  5; | 
|  | optional bool inout             =  6; | 
|  | optional bool bycopy            =  7; | 
|  | optional bool byref             =  8; | 
|  | optional bool oneway            =  9; | 
|  | optional bool self              =  10; | 
|  | optional bool instancetype      =  11; | 
|  | optional bool nullable          =  12; | 
|  | optional bool nonnull           =  13; | 
|  | optional bool nil               =  14; | 
|  | // Nil and nil can't be in the same message | 
|  | optional bool YES               =  16; | 
|  | optional bool NO                =  17; | 
|  | optional bool weak              =  18; | 
|  |  | 
|  | // Some C/C++ Keywords | 
|  | optional bool case              = 30; | 
|  | optional bool if                = 31; | 
|  | optional bool and_eq            = 32; | 
|  | optional bool public            = 33; | 
|  | optional bool private           = 34; | 
|  | optional bool typename          = 35; | 
|  | optional bool static_cast       = 36; | 
|  | optional bool typeof            = 37; | 
|  | optional bool restrict          = 38; | 
|  | optional bool NULL              = 39; | 
|  |  | 
|  | // Some NSObject Methods | 
|  | optional bool dealloc           = 110; | 
|  | optional bool isProxy           = 111; | 
|  | optional bool copy              = 112; | 
|  | optional bool description       = 113; | 
|  | optional bool zone              = 114; | 
|  | optional bool className         = 115; | 
|  | optional bool __retain_OA       = 116; | 
|  | optional bool CAMLType          = 117; | 
|  | optional bool isNSDictionary__  = 118; | 
|  | optional bool accessibilityLabel = 119; | 
|  |  | 
|  | // Some Objc "keywords" that we shouldn't | 
|  | // have to worry about because they | 
|  | // can only appear in specialized areas. | 
|  | optional bool assign            = 200; | 
|  | optional bool getter            = 201; | 
|  | optional bool setter            = 202; | 
|  | optional bool atomic            = 203; | 
|  | optional bool nonatomic         = 204; | 
|  | optional bool strong            = 205; | 
|  | optional bool null_resettable   = 206; | 
|  | optional bool readonly          = 207; | 
|  |  | 
|  | // Some GPBMessage methods | 
|  | optional bool clear             = 300; | 
|  | optional bool data              = 301; | 
|  | optional bool descriptor        = 302; | 
|  | optional bool delimitedData     = 303; | 
|  |  | 
|  | // Some MacTypes | 
|  | optional bool Fixed             = 400; | 
|  | optional bool Point             = 401; | 
|  | optional bool FixedPoint        = 402; | 
|  | optional bool Style             = 403; | 
|  |  | 
|  | // C/C++ reserved identifiers | 
|  | optional bool _Generic          = 500; | 
|  | optional bool __block           = 501; | 
|  |  | 
|  | // Try a keyword as a type | 
|  | optional autorelease SubEnum    = 1000; | 
|  |  | 
|  | optional group New = 2000 { | 
|  | optional string copy = 1; | 
|  | } | 
|  | optional group MutableCopy = 2001 { | 
|  | optional int32 extensionRegistry = 1; | 
|  | } | 
|  |  | 
|  | extensions 3000 to 3999; | 
|  |  | 
|  | } | 
|  |  | 
|  | enum retain { | 
|  | count          = 4; | 
|  | initialized    = 5; | 
|  | serializedSize = 6; | 
|  | } | 
|  |  | 
|  | message ObjCPropertyNaming { | 
|  | // Test that the properties properly get things all caps. | 
|  | optional string url           = 1; | 
|  | optional string thumbnail_url = 2; | 
|  | optional string url_foo       = 3; | 
|  | optional string some_url_blah = 4; | 
|  | optional string http          = 5; | 
|  | optional string https         = 6; | 
|  | // This one doesn't. | 
|  | repeated string urls          = 7; | 
|  | } | 
|  |  | 
|  | // EnumValueShortName: The short names shouldn't get suffixes/prefixes. | 
|  | enum Foo { | 
|  | SERIALIZED_SIZE = 1; | 
|  | SIZE            = 2; | 
|  | OTHER           = 3; | 
|  | } | 
|  |  | 
|  | // EnumValueShortName: The enum name gets a prefix. | 
|  | enum Category { | 
|  | RED  = 1; | 
|  | BLUE = 2; | 
|  | } | 
|  |  | 
|  | // EnumValueShortName: Twist case, full name gets PB, but the short names | 
|  | // should still end up correct. | 
|  | enum Time { | 
|  | BASE            = 1; | 
|  | RECORD          = 2; | 
|  | SOMETHING_ELSE  = 3; | 
|  | } | 
|  |  | 
|  | extend self { | 
|  | repeated    int32 debugDescription    =  3000 [packed = true]; | 
|  | repeated    int64 finalize            =  3001 [packed = true]; | 
|  | repeated   uint32 hash                =  3002 [packed = true]; | 
|  | repeated   uint64 classForCoder       =  3003 [packed = true]; | 
|  | repeated   sint32 byref               =  3004 [packed = true]; | 
|  | } | 
|  |  | 
|  | // Test handing of fields that start with init* since Xcode 5's ARC support | 
|  | // doesn't like messages that look like initializers but aren't. | 
|  | message ObjCInitFoo { | 
|  | optional string init_val = 11; | 
|  | optional int32 init_size = 12; | 
|  | optional self init_self = 13; | 
|  |  | 
|  | repeated string init_vals = 21; | 
|  | repeated int32 init_sizes = 22; | 
|  | repeated self init_selfs = 23; | 
|  | } | 
|  |  | 
|  | // Test handling of fields that start with retained names. | 
|  | message ObjCRetainedFoo { | 
|  | optional string new_val_lower_complex = 11; | 
|  | optional string new_Val_upper_complex = 12; | 
|  | optional string newvalue_lower_no_underscore_complex = 13; | 
|  | optional string newValue_upper_no_underscore_complex = 14; | 
|  |  | 
|  | optional int32 new_val_lower_primitive = 15; | 
|  | optional int32 new_Val_upper_primitive = 16; | 
|  | optional int32 newvalue_lower_no_underscore_primitive = 17; | 
|  | optional int32 newValue_upper_no_underscore_primitive = 18; | 
|  |  | 
|  | optional self new_val_lower_message = 19; | 
|  | optional self new_Val_upper_message = 20; | 
|  | optional self newvalue_lower_no_underscore_message = 21; | 
|  | optional self newValue_upper_no_underscore_message = 22; | 
|  |  | 
|  | optional Foo new_val_lower_enum = 23; | 
|  | optional Foo new_Val_upper_enum = 24; | 
|  | optional Foo newvalue_lower_no_underscore_enum = 25; | 
|  | optional Foo newValue_upper_no_underscore_enum = 26; | 
|  |  | 
|  | repeated string new_val_lower_complex_repeated = 111; | 
|  | repeated string new_Val_upper_complex_repeated = 112; | 
|  | repeated string newvalue_lower_no_underscore_complex_repeated = 113; | 
|  | repeated string newValue_upper_no_underscore_complex_repeated = 114; | 
|  |  | 
|  | repeated int32 new_val_lower_primitive_repeated = 115; | 
|  | repeated int32 new_Val_upper_primitive_repeated = 116; | 
|  | repeated int32 newvalue_lower_no_underscore_primitive_repeated = 117; | 
|  | repeated int32 newValue_upper_no_underscore_primitive_repeated = 118; | 
|  |  | 
|  | repeated self new_val_lower_message_repeated = 119; | 
|  | repeated self new_Val_upper_message_repeated = 120; | 
|  | repeated self newvalue_lower_no_underscore_message_repeated = 121; | 
|  | repeated self newValue_upper_no_underscore_message_repeated = 122; | 
|  |  | 
|  | repeated Foo new_val_lower_enum_repeated = 123; | 
|  | repeated Foo new_Val_upper_enum_repeated = 124; | 
|  | repeated Foo newvalue_lower_no_underscore_enum_repeated = 125; | 
|  | repeated Foo newValue_upper_no_underscore_enum_repeated = 126; | 
|  |  | 
|  | optional string alloc_val_lower_complex = 211; | 
|  | optional string alloc_Val_upper_complex = 212; | 
|  | optional string allocvalue_lower_no_underscore_complex = 213; | 
|  | optional string allocValue_upper_no_underscore_complex = 214; | 
|  |  | 
|  | optional int32 alloc_val_lower_primitive = 215; | 
|  | optional int32 alloc_Val_upper_primitive = 216; | 
|  | optional int32 allocvalue_lower_no_underscore_primitive = 217; | 
|  | optional int32 allocValue_upper_no_underscore_primitive = 218; | 
|  |  | 
|  | optional self alloc_val_lower_message = 219; | 
|  | optional self alloc_Val_upper_message = 220; | 
|  | optional self allocvalue_lower_no_underscore_message = 221; | 
|  | optional self allocValue_upper_no_underscore_message = 222; | 
|  |  | 
|  | optional Foo alloc_val_lower_enum = 223; | 
|  | optional Foo alloc_Val_upper_enum = 224; | 
|  | optional Foo allocvalue_lower_no_underscore_enum = 225; | 
|  | optional Foo allocValue_upper_no_underscore_enum = 226; | 
|  |  | 
|  | repeated string alloc_val_lower_complex_repeated = 311; | 
|  | repeated string alloc_Val_upper_complex_repeated = 312; | 
|  | repeated string allocvalue_lower_no_underscore_complex_repeated = 313; | 
|  | repeated string allocValue_upper_no_underscore_complex_repeated = 314; | 
|  |  | 
|  | repeated int32 alloc_val_lower_primitive_repeated = 315; | 
|  | repeated int32 alloc_Val_upper_primitive_repeated = 316; | 
|  | repeated int32 allocvalue_lower_no_underscore_primitive_repeated = 317; | 
|  | repeated int32 allocValue_upper_no_underscore_primitive_repeated = 318; | 
|  |  | 
|  | repeated self alloc_val_lower_message_repeated = 319; | 
|  | repeated self alloc_Val_upper_message_repeated = 320; | 
|  | repeated self allocvalue_lower_no_underscore_message_repeated = 321; | 
|  | repeated self allocValue_upper_no_underscore_message_repeated = 322; | 
|  |  | 
|  | repeated Foo alloc_val_lower_enum_repeated = 323; | 
|  | repeated Foo alloc_Val_upper_enum_repeated = 324; | 
|  | repeated Foo allocvalue_lower_no_underscore_enum_repeated = 325; | 
|  | repeated Foo allocValue_upper_no_underscore_enum_repeated = 326; | 
|  |  | 
|  | optional string copy_val_lower_complex = 411; | 
|  | optional string copy_Val_upper_complex = 412; | 
|  | optional string copyvalue_lower_no_underscore_complex = 413; | 
|  | optional string copyValue_upper_no_underscore_complex = 414; | 
|  |  | 
|  | optional int32 copy_val_lower_primitive = 415; | 
|  | optional int32 copy_Val_upper_primitive = 416; | 
|  | optional int32 copyvalue_lower_no_underscore_primitive = 417; | 
|  | optional int32 copyValue_upper_no_underscore_primitive = 418; | 
|  |  | 
|  | optional self copy_val_lower_message = 419; | 
|  | optional self copy_Val_upper_message = 420; | 
|  | optional self copyvalue_lower_no_underscore_message = 421; | 
|  | optional self copyValue_upper_no_underscore_message = 422; | 
|  |  | 
|  | optional Foo copy_val_lower_enum = 423; | 
|  | optional Foo copy_Val_upper_enum = 424; | 
|  | optional Foo copyvalue_lower_no_underscore_enum = 425; | 
|  | optional Foo copyValue_upper_no_underscore_enum = 426; | 
|  |  | 
|  | repeated string copy_val_lower_complex_repeated = 511; | 
|  | repeated string copy_Val_upper_complex_repeated = 512; | 
|  | repeated string copyvalue_lower_no_underscore_complex_repeated = 513; | 
|  | repeated string copyValue_upper_no_underscore_complex_repeated = 514; | 
|  |  | 
|  | repeated int32 copy_val_lower_primitive_repeated = 515; | 
|  | repeated int32 copy_Val_upper_primitive_repeated = 516; | 
|  | repeated int32 copyvalue_lower_no_underscore_primitive_repeated = 517; | 
|  | repeated int32 copyValue_upper_no_underscore_primitive_repeated = 518; | 
|  |  | 
|  | repeated self copy_val_lower_message_repeated = 519; | 
|  | repeated self copy_Val_upper_message_repeated = 520; | 
|  | repeated self copyvalue_lower_no_underscore_message_repeated = 521; | 
|  | repeated self copyValue_upper_no_underscore_message_repeated = 522; | 
|  |  | 
|  | repeated Foo copy_val_lower_enum_repeated = 523; | 
|  | repeated Foo copy_Val_upper_enum_repeated = 524; | 
|  | repeated Foo copyvalue_lower_no_underscore_enum_repeated = 525; | 
|  | repeated Foo copyValue_upper_no_underscore_enum_repeated = 526; | 
|  |  | 
|  | optional string mutableCopy_val_lower_complex = 611; | 
|  | optional string mutableCopy_Val_upper_complex = 612; | 
|  | optional string mutableCopyvalue_lower_no_underscore_complex = 613; | 
|  | optional string mutableCopyValue_upper_no_underscore_complex = 614; | 
|  |  | 
|  | optional int32 mutableCopy_val_lower_primitive = 615; | 
|  | optional int32 mutableCopy_Val_upper_primitive = 616; | 
|  | optional int32 mutableCopyvalue_lower_no_underscore_primitive = 617; | 
|  | optional int32 mutableCopyValue_upper_no_underscore_primitive = 618; | 
|  |  | 
|  | optional self mutableCopy_val_lower_message = 619; | 
|  | optional self mutableCopy_Val_upper_message = 620; | 
|  | optional self mutableCopyvalue_lower_no_underscore_message = 621; | 
|  | optional self mutableCopyValue_upper_no_underscore_message = 622; | 
|  |  | 
|  | optional Foo mutableCopy_val_lower_enum = 623; | 
|  | optional Foo mutableCopy_Val_upper_enum = 624; | 
|  | optional Foo mutableCopyvalue_lower_no_underscore_enum = 625; | 
|  | optional Foo mutableCopyValue_upper_no_underscore_enum = 626; | 
|  |  | 
|  | repeated string mutableCopy_val_lower_complex_repeated = 711; | 
|  | repeated string mutableCopy_Val_upper_complex_repeated = 712; | 
|  | repeated string mutableCopyvalue_lower_no_underscore_complex_repeated = 713; | 
|  | repeated string mutableCopyValue_upper_no_underscore_complex_repeated = 714; | 
|  |  | 
|  | repeated int32 mutableCopy_val_lower_primitive_repeated = 715; | 
|  | repeated int32 mutableCopy_Val_upper_primitive_repeated = 716; | 
|  | repeated int32 mutableCopyvalue_lower_no_underscore_primitive_repeated = 717; | 
|  | repeated int32 mutableCopyValue_upper_no_underscore_primitive_repeated = 718; | 
|  |  | 
|  | repeated self mutableCopy_val_lower_message_repeated = 719; | 
|  | repeated self mutableCopy_Val_upper_message_repeated = 720; | 
|  | repeated self mutableCopyvalue_lower_no_underscore_message_repeated = 721; | 
|  | repeated self mutableCopyValue_upper_no_underscore_message_repeated = 722; | 
|  |  | 
|  | repeated Foo mutableCopy_val_lower_enum_repeated = 723; | 
|  | repeated Foo mutableCopy_Val_upper_enum_repeated = 724; | 
|  | repeated Foo mutableCopyvalue_lower_no_underscore_enum_repeated = 725; | 
|  | repeated Foo mutableCopyValue_upper_no_underscore_enum_repeated = 726; | 
|  |  | 
|  | extensions 1000 to 3999; | 
|  | } | 
|  |  | 
|  | // Extension fields with retained names. | 
|  | extend ObjCRetainedFoo { | 
|  | optional string new_val_lower_complex = 1011; | 
|  | optional string new_Val_upper_complex = 1012; | 
|  | optional string newvalue_lower_no_underscore_complex = 1013; | 
|  | optional string newValue_upper_no_underscore_complex = 1014; | 
|  |  | 
|  | optional int32 new_val_lower_primitive = 1015; | 
|  | optional int32 new_Val_upper_primitive = 1016; | 
|  | optional int32 newvalue_lower_no_underscore_primitive = 1017; | 
|  | optional int32 newValue_upper_no_underscore_primitive = 1018; | 
|  |  | 
|  | optional self new_val_lower_message = 1019; | 
|  | optional self new_Val_upper_message = 1020; | 
|  | optional self newvalue_lower_no_underscore_message = 1021; | 
|  | optional self newValue_upper_no_underscore_message = 1022; | 
|  |  | 
|  | optional Foo new_val_lower_enum = 1023; | 
|  | optional Foo new_Val_upper_enum = 1024; | 
|  | optional Foo newvalue_lower_no_underscore_enum = 1025; | 
|  | optional Foo newValue_upper_no_underscore_enum = 1026; | 
|  |  | 
|  | repeated string new_val_lower_complex_repeated = 1111; | 
|  | repeated string new_Val_upper_complex_repeated = 1112; | 
|  | repeated string newvalue_lower_no_underscore_complex_repeated = 1113; | 
|  | repeated string newValue_upper_no_underscore_complex_repeated = 1114; | 
|  |  | 
|  | repeated int32 new_val_lower_primitive_repeated = 1115; | 
|  | repeated int32 new_Val_upper_primitive_repeated = 1116; | 
|  | repeated int32 newvalue_lower_no_underscore_primitive_repeated = 1117; | 
|  | repeated int32 newValue_upper_no_underscore_primitive_repeated = 1118; | 
|  |  | 
|  | repeated self new_val_lower_message_repeated = 1119; | 
|  | repeated self new_Val_upper_message_repeated = 1120; | 
|  | repeated self newvalue_lower_no_underscore_message_repeated = 1121; | 
|  | repeated self newValue_upper_no_underscore_message_repeated = 1122; | 
|  |  | 
|  | repeated Foo new_val_lower_enum_repeated = 1123; | 
|  | repeated Foo new_Val_upper_enum_repeated = 1124; | 
|  | repeated Foo newvalue_lower_no_underscore_enum_repeated = 1125; | 
|  | repeated Foo newValue_upper_no_underscore_enum_repeated = 1126; | 
|  |  | 
|  | optional string alloc_val_lower_complex = 1211; | 
|  | optional string alloc_Val_upper_complex = 1212; | 
|  | optional string allocvalue_lower_no_underscore_complex = 1213; | 
|  | optional string allocValue_upper_no_underscore_complex = 1214; | 
|  |  | 
|  | optional int32 alloc_val_lower_primitive = 1215; | 
|  | optional int32 alloc_Val_upper_primitive = 1216; | 
|  | optional int32 allocvalue_lower_no_underscore_primitive = 1217; | 
|  | optional int32 allocValue_upper_no_underscore_primitive = 1218; | 
|  |  | 
|  | optional self alloc_val_lower_message = 1219; | 
|  | optional self alloc_Val_upper_message = 1220; | 
|  | optional self allocvalue_lower_no_underscore_message = 1221; | 
|  | optional self allocValue_upper_no_underscore_message = 1222; | 
|  |  | 
|  | optional Foo alloc_val_lower_enum = 1223; | 
|  | optional Foo alloc_Val_upper_enum = 1224; | 
|  | optional Foo allocvalue_lower_no_underscore_enum = 1225; | 
|  | optional Foo allocValue_upper_no_underscore_enum = 1226; | 
|  |  | 
|  | repeated string alloc_val_lower_complex_repeated = 1311; | 
|  | repeated string alloc_Val_upper_complex_repeated = 1312; | 
|  | repeated string allocvalue_lower_no_underscore_complex_repeated = 1313; | 
|  | repeated string allocValue_upper_no_underscore_complex_repeated = 1314; | 
|  |  | 
|  | repeated int32 alloc_val_lower_primitive_repeated = 1315; | 
|  | repeated int32 alloc_Val_upper_primitive_repeated = 1316; | 
|  | repeated int32 allocvalue_lower_no_underscore_primitive_repeated = 1317; | 
|  | repeated int32 allocValue_upper_no_underscore_primitive_repeated = 1318; | 
|  |  | 
|  | repeated self alloc_val_lower_message_repeated = 1319; | 
|  | repeated self alloc_Val_upper_message_repeated = 1320; | 
|  | repeated self allocvalue_lower_no_underscore_message_repeated = 1321; | 
|  | repeated self allocValue_upper_no_underscore_message_repeated = 1322; | 
|  |  | 
|  | repeated Foo alloc_val_lower_enum_repeated = 1323; | 
|  | repeated Foo alloc_Val_upper_enum_repeated = 1324; | 
|  | repeated Foo allocvalue_lower_no_underscore_enum_repeated = 1325; | 
|  | repeated Foo allocValue_upper_no_underscore_enum_repeated = 1326; | 
|  |  | 
|  | optional string copy_val_lower_complex = 1411; | 
|  | optional string copy_Val_upper_complex = 1412; | 
|  | optional string copyvalue_lower_no_underscore_complex = 1413; | 
|  | optional string copyValue_upper_no_underscore_complex = 1414; | 
|  |  | 
|  | optional int32 copy_val_lower_primitive = 1415; | 
|  | optional int32 copy_Val_upper_primitive = 1416; | 
|  | optional int32 copyvalue_lower_no_underscore_primitive = 1417; | 
|  | optional int32 copyValue_upper_no_underscore_primitive = 1418; | 
|  |  | 
|  | optional self copy_val_lower_message = 1419; | 
|  | optional self copy_Val_upper_message = 1420; | 
|  | optional self copyvalue_lower_no_underscore_message = 1421; | 
|  | optional self copyValue_upper_no_underscore_message = 1422; | 
|  |  | 
|  | optional Foo copy_val_lower_enum = 1423; | 
|  | optional Foo copy_Val_upper_enum = 1424; | 
|  | optional Foo copyvalue_lower_no_underscore_enum = 1425; | 
|  | optional Foo copyValue_upper_no_underscore_enum = 1426; | 
|  |  | 
|  | repeated string copy_val_lower_complex_repeated = 1511; | 
|  | repeated string copy_Val_upper_complex_repeated = 1512; | 
|  | repeated string copyvalue_lower_no_underscore_complex_repeated = 1513; | 
|  | repeated string copyValue_upper_no_underscore_complex_repeated = 1514; | 
|  |  | 
|  | repeated int32 copy_val_lower_primitive_repeated = 1515; | 
|  | repeated int32 copy_Val_upper_primitive_repeated = 1516; | 
|  | repeated int32 copyvalue_lower_no_underscore_primitive_repeated = 1517; | 
|  | repeated int32 copyValue_upper_no_underscore_primitive_repeated = 1518; | 
|  |  | 
|  | repeated self copy_val_lower_message_repeated = 1519; | 
|  | repeated self copy_Val_upper_message_repeated = 1520; | 
|  | repeated self copyvalue_lower_no_underscore_message_repeated = 1521; | 
|  | repeated self copyValue_upper_no_underscore_message_repeated = 1522; | 
|  |  | 
|  | repeated Foo copy_val_lower_enum_repeated = 1523; | 
|  | repeated Foo copy_Val_upper_enum_repeated = 1524; | 
|  | repeated Foo copyvalue_lower_no_underscore_enum_repeated = 1525; | 
|  | repeated Foo copyValue_upper_no_underscore_enum_repeated = 1526; | 
|  |  | 
|  | optional string mutableCopy_val_lower_complex = 1611; | 
|  | optional string mutableCopy_Val_upper_complex = 1612; | 
|  | optional string mutableCopyvalue_lower_no_underscore_complex = 1613; | 
|  | optional string mutableCopyValue_upper_no_underscore_complex = 1614; | 
|  |  | 
|  | optional int32 mutableCopy_val_lower_primitive = 1615; | 
|  | optional int32 mutableCopy_Val_upper_primitive = 1616; | 
|  | optional int32 mutableCopyvalue_lower_no_underscore_primitive = 1617; | 
|  | optional int32 mutableCopyValue_upper_no_underscore_primitive = 1618; | 
|  |  | 
|  | optional self mutableCopy_val_lower_message = 1619; | 
|  | optional self mutableCopy_Val_upper_message = 1620; | 
|  | optional self mutableCopyvalue_lower_no_underscore_message = 1621; | 
|  | optional self mutableCopyValue_upper_no_underscore_message = 1622; | 
|  |  | 
|  | optional Foo mutableCopy_val_lower_enum = 1623; | 
|  | optional Foo mutableCopy_Val_upper_enum = 1624; | 
|  | optional Foo mutableCopyvalue_lower_no_underscore_enum = 1625; | 
|  | optional Foo mutableCopyValue_upper_no_underscore_enum = 1626; | 
|  |  | 
|  | repeated string mutableCopy_val_lower_complex_repeated = 1711; | 
|  | repeated string mutableCopy_Val_upper_complex_repeated = 1712; | 
|  | repeated string mutableCopyvalue_lower_no_underscore_complex_repeated = 1713; | 
|  | repeated string mutableCopyValue_upper_no_underscore_complex_repeated = 1714; | 
|  |  | 
|  | repeated int32 mutableCopy_val_lower_primitive_repeated = 1715; | 
|  | repeated int32 mutableCopy_Val_upper_primitive_repeated = 1716; | 
|  | repeated int32 mutableCopyvalue_lower_no_underscore_primitive_repeated = 1717; | 
|  | repeated int32 mutableCopyValue_upper_no_underscore_primitive_repeated = 1718; | 
|  |  | 
|  | repeated self mutableCopy_val_lower_message_repeated = 1719; | 
|  | repeated self mutableCopy_Val_upper_message_repeated = 1720; | 
|  | repeated self mutableCopyvalue_lower_no_underscore_message_repeated = 1721; | 
|  | repeated self mutableCopyValue_upper_no_underscore_message_repeated = 1722; | 
|  |  | 
|  | repeated Foo mutableCopy_val_lower_enum_repeated = 1723; | 
|  | repeated Foo mutableCopy_Val_upper_enum_repeated = 1724; | 
|  | repeated Foo mutableCopyvalue_lower_no_underscore_enum_repeated = 1725; | 
|  | repeated Foo mutableCopyValue_upper_no_underscore_enum_repeated = 1726; | 
|  | } | 
|  |  | 
|  | message JustToScopeExtensions { | 
|  | extend ObjCRetainedFoo { | 
|  | optional string new_val_lower_complex = 2011; | 
|  | optional string new_Val_upper_complex = 2012; | 
|  | optional string newvalue_lower_no_underscore_complex = 2013; | 
|  | optional string newValue_upper_no_underscore_complex = 2014; | 
|  |  | 
|  | optional int32 new_val_lower_primitive = 2015; | 
|  | optional int32 new_Val_upper_primitive = 2016; | 
|  | optional int32 newvalue_lower_no_underscore_primitive = 2017; | 
|  | optional int32 newValue_upper_no_underscore_primitive = 2018; | 
|  |  | 
|  | optional self new_val_lower_message = 2019; | 
|  | optional self new_Val_upper_message = 2020; | 
|  | optional self newvalue_lower_no_underscore_message = 2021; | 
|  | optional self newValue_upper_no_underscore_message = 2022; | 
|  |  | 
|  | optional Foo new_val_lower_enum = 2023; | 
|  | optional Foo new_Val_upper_enum = 2024; | 
|  | optional Foo newvalue_lower_no_underscore_enum = 2025; | 
|  | optional Foo newValue_upper_no_underscore_enum = 2026; | 
|  |  | 
|  | repeated string new_val_lower_complex_repeated = 2111; | 
|  | repeated string new_Val_upper_complex_repeated = 2112; | 
|  | repeated string newvalue_lower_no_underscore_complex_repeated = 2113; | 
|  | repeated string newValue_upper_no_underscore_complex_repeated = 2114; | 
|  |  | 
|  | repeated int32 new_val_lower_primitive_repeated = 2115; | 
|  | repeated int32 new_Val_upper_primitive_repeated = 2116; | 
|  | repeated int32 newvalue_lower_no_underscore_primitive_repeated = 2117; | 
|  | repeated int32 newValue_upper_no_underscore_primitive_repeated = 2118; | 
|  |  | 
|  | repeated self new_val_lower_message_repeated = 2119; | 
|  | repeated self new_Val_upper_message_repeated = 2120; | 
|  | repeated self newvalue_lower_no_underscore_message_repeated = 2121; | 
|  | repeated self newValue_upper_no_underscore_message_repeated = 2122; | 
|  |  | 
|  | repeated Foo new_val_lower_enum_repeated = 2123; | 
|  | repeated Foo new_Val_upper_enum_repeated = 2124; | 
|  | repeated Foo newvalue_lower_no_underscore_enum_repeated = 2125; | 
|  | repeated Foo newValue_upper_no_underscore_enum_repeated = 2126; | 
|  |  | 
|  | optional string alloc_val_lower_complex = 2211; | 
|  | optional string alloc_Val_upper_complex = 2212; | 
|  | optional string allocvalue_lower_no_underscore_complex = 2213; | 
|  | optional string allocValue_upper_no_underscore_complex = 2214; | 
|  |  | 
|  | optional int32 alloc_val_lower_primitive = 2215; | 
|  | optional int32 alloc_Val_upper_primitive = 2216; | 
|  | optional int32 allocvalue_lower_no_underscore_primitive = 2217; | 
|  | optional int32 allocValue_upper_no_underscore_primitive = 2218; | 
|  |  | 
|  | optional self alloc_val_lower_message = 2219; | 
|  | optional self alloc_Val_upper_message = 2220; | 
|  | optional self allocvalue_lower_no_underscore_message = 2221; | 
|  | optional self allocValue_upper_no_underscore_message = 2222; | 
|  |  | 
|  | optional Foo alloc_val_lower_enum = 2223; | 
|  | optional Foo alloc_Val_upper_enum = 2224; | 
|  | optional Foo allocvalue_lower_no_underscore_enum = 2225; | 
|  | optional Foo allocValue_upper_no_underscore_enum = 2226; | 
|  |  | 
|  | repeated string alloc_val_lower_complex_repeated = 2311; | 
|  | repeated string alloc_Val_upper_complex_repeated = 2312; | 
|  | repeated string allocvalue_lower_no_underscore_complex_repeated = 2313; | 
|  | repeated string allocValue_upper_no_underscore_complex_repeated = 2314; | 
|  |  | 
|  | repeated int32 alloc_val_lower_primitive_repeated = 2315; | 
|  | repeated int32 alloc_Val_upper_primitive_repeated = 2316; | 
|  | repeated int32 allocvalue_lower_no_underscore_primitive_repeated = 2317; | 
|  | repeated int32 allocValue_upper_no_underscore_primitive_repeated = 2318; | 
|  |  | 
|  | repeated self alloc_val_lower_message_repeated = 2319; | 
|  | repeated self alloc_Val_upper_message_repeated = 2320; | 
|  | repeated self allocvalue_lower_no_underscore_message_repeated = 2321; | 
|  | repeated self allocValue_upper_no_underscore_message_repeated = 2322; | 
|  |  | 
|  | repeated Foo alloc_val_lower_enum_repeated = 2323; | 
|  | repeated Foo alloc_Val_upper_enum_repeated = 2324; | 
|  | repeated Foo allocvalue_lower_no_underscore_enum_repeated = 2325; | 
|  | repeated Foo allocValue_upper_no_underscore_enum_repeated = 2326; | 
|  |  | 
|  | optional string copy_val_lower_complex = 2411; | 
|  | optional string copy_Val_upper_complex = 2412; | 
|  | optional string copyvalue_lower_no_underscore_complex = 2413; | 
|  | optional string copyValue_upper_no_underscore_complex = 2414; | 
|  |  | 
|  | optional int32 copy_val_lower_primitive = 2415; | 
|  | optional int32 copy_Val_upper_primitive = 2416; | 
|  | optional int32 copyvalue_lower_no_underscore_primitive = 2417; | 
|  | optional int32 copyValue_upper_no_underscore_primitive = 2418; | 
|  |  | 
|  | optional self copy_val_lower_message = 2419; | 
|  | optional self copy_Val_upper_message = 2420; | 
|  | optional self copyvalue_lower_no_underscore_message = 2421; | 
|  | optional self copyValue_upper_no_underscore_message = 2422; | 
|  |  | 
|  | optional Foo copy_val_lower_enum = 2423; | 
|  | optional Foo copy_Val_upper_enum = 2424; | 
|  | optional Foo copyvalue_lower_no_underscore_enum = 2425; | 
|  | optional Foo copyValue_upper_no_underscore_enum = 2426; | 
|  |  | 
|  | repeated string copy_val_lower_complex_repeated = 2511; | 
|  | repeated string copy_Val_upper_complex_repeated = 2512; | 
|  | repeated string copyvalue_lower_no_underscore_complex_repeated = 2513; | 
|  | repeated string copyValue_upper_no_underscore_complex_repeated = 2514; | 
|  |  | 
|  | repeated int32 copy_val_lower_primitive_repeated = 2515; | 
|  | repeated int32 copy_Val_upper_primitive_repeated = 2516; | 
|  | repeated int32 copyvalue_lower_no_underscore_primitive_repeated = 2517; | 
|  | repeated int32 copyValue_upper_no_underscore_primitive_repeated = 2518; | 
|  |  | 
|  | repeated self copy_val_lower_message_repeated = 2519; | 
|  | repeated self copy_Val_upper_message_repeated = 2520; | 
|  | repeated self copyvalue_lower_no_underscore_message_repeated = 2521; | 
|  | repeated self copyValue_upper_no_underscore_message_repeated = 2522; | 
|  |  | 
|  | repeated Foo copy_val_lower_enum_repeated = 2523; | 
|  | repeated Foo copy_Val_upper_enum_repeated = 2524; | 
|  | repeated Foo copyvalue_lower_no_underscore_enum_repeated = 2525; | 
|  | repeated Foo copyValue_upper_no_underscore_enum_repeated = 2526; | 
|  |  | 
|  | optional string mutableCopy_val_lower_complex = 2611; | 
|  | optional string mutableCopy_Val_upper_complex = 2612; | 
|  | optional string mutableCopyvalue_lower_no_underscore_complex = 2613; | 
|  | optional string mutableCopyValue_upper_no_underscore_complex = 2614; | 
|  |  | 
|  | optional int32 mutableCopy_val_lower_primitive = 2615; | 
|  | optional int32 mutableCopy_Val_upper_primitive = 2616; | 
|  | optional int32 mutableCopyvalue_lower_no_underscore_primitive = 2617; | 
|  | optional int32 mutableCopyValue_upper_no_underscore_primitive = 2618; | 
|  |  | 
|  | optional self mutableCopy_val_lower_message = 2619; | 
|  | optional self mutableCopy_Val_upper_message = 2620; | 
|  | optional self mutableCopyvalue_lower_no_underscore_message = 2621; | 
|  | optional self mutableCopyValue_upper_no_underscore_message = 2622; | 
|  |  | 
|  | optional Foo mutableCopy_val_lower_enum = 2623; | 
|  | optional Foo mutableCopy_Val_upper_enum = 2624; | 
|  | optional Foo mutableCopyvalue_lower_no_underscore_enum = 2625; | 
|  | optional Foo mutableCopyValue_upper_no_underscore_enum = 2626; | 
|  |  | 
|  | repeated string mutableCopy_val_lower_complex_repeated = 2711; | 
|  | repeated string mutableCopy_Val_upper_complex_repeated = 2712; | 
|  | repeated string mutableCopyvalue_lower_no_underscore_complex_repeated = 2713; | 
|  | repeated string mutableCopyValue_upper_no_underscore_complex_repeated = 2714; | 
|  |  | 
|  | repeated int32 mutableCopy_val_lower_primitive_repeated = 2715; | 
|  | repeated int32 mutableCopy_Val_upper_primitive_repeated = 2716; | 
|  | repeated int32 mutableCopyvalue_lower_no_underscore_primitive_repeated = 2717; | 
|  | repeated int32 mutableCopyValue_upper_no_underscore_primitive_repeated = 2718; | 
|  |  | 
|  | repeated self mutableCopy_val_lower_message_repeated = 2719; | 
|  | repeated self mutableCopy_Val_upper_message_repeated = 2720; | 
|  | repeated self mutableCopyvalue_lower_no_underscore_message_repeated = 2721; | 
|  | repeated self mutableCopyValue_upper_no_underscore_message_repeated = 2722; | 
|  |  | 
|  | repeated Foo mutableCopy_val_lower_enum_repeated = 2723; | 
|  | repeated Foo mutableCopy_Val_upper_enum_repeated = 2724; | 
|  | repeated Foo mutableCopyvalue_lower_no_underscore_enum_repeated = 2725; | 
|  | repeated Foo mutableCopyValue_upper_no_underscore_enum_repeated = 2726; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Test handling of fields that are the retained names. | 
|  | message ObjCRetainedComplex { | 
|  | optional string new = 1; | 
|  | optional string alloc = 2; | 
|  | optional string copy = 3; | 
|  | optional string mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | message ObjCRetainedComplexRepeated { | 
|  | repeated string new = 1; | 
|  | repeated string alloc = 2; | 
|  | repeated string copy = 3; | 
|  | repeated string mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | message ObjCRetainedPrimitive { | 
|  | optional int32 new = 1; | 
|  | optional int32 alloc = 2; | 
|  | optional int32 copy = 3; | 
|  | optional int32 mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | message ObjCRetainedPrimitiveRepeated { | 
|  | repeated int32 new = 1; | 
|  | repeated int32 alloc = 2; | 
|  | repeated int32 copy = 3; | 
|  | repeated int32 mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | message ObjCRetainedMessage { | 
|  | optional self new = 1; | 
|  | optional self alloc = 2; | 
|  | optional self copy = 3; | 
|  | optional self mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | message ObjCRetainedMessageRepeated { | 
|  | repeated self new = 1; | 
|  | repeated self alloc = 2; | 
|  | repeated self copy = 3; | 
|  | repeated self mutableCopy = 4; | 
|  | } | 
|  |  | 
|  | // Test Handling some MacTypes | 
|  | message Point { | 
|  | message Rect { | 
|  | optional int32 TimeValue = 1; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Test some weird defaults that we see in protos. | 
|  | message ObjcWeirdDefaults { | 
|  | // Set default values that match the protocol buffer defined defaults to | 
|  | // confirm hasDefault and the default values are set correctly. | 
|  | optional string foo = 1 [default = ""]; | 
|  | optional bytes bar = 2 [default = ""]; | 
|  | } | 
|  |  | 
|  | // Used to confirm negative enum values work as expected. | 
|  | message EnumTestMsg { | 
|  | enum MyEnum { | 
|  | ZERO    = 0; | 
|  | ONE     = 1; | 
|  | TWO     = 2; | 
|  | NEG_ONE = -1; | 
|  | NEG_TWO = -2; | 
|  | } | 
|  | optional MyEnum foo = 1; | 
|  | optional MyEnum bar = 2 [default = ONE]; | 
|  | optional MyEnum baz = 3 [default = NEG_ONE]; | 
|  |  | 
|  | repeated MyEnum mumble = 4; | 
|  | } | 
|  |  | 
|  | // Test case for https://github.com/protocolbuffers/protobuf/issues/1453 | 
|  | // Message with no explicit defaults, but a non zero default for an enum. | 
|  | message MessageWithOneBasedEnum { | 
|  | enum OneBasedEnum { | 
|  | ONE = 1; | 
|  | TWO = 2; | 
|  | } | 
|  | optional OneBasedEnum enum_field = 1; | 
|  | } | 
|  |  | 
|  | // Message with all bools for testing things related to bool storage. | 
|  | message BoolOnlyMessage { | 
|  | optional bool bool_field_1 = 1; | 
|  | optional bool bool_field_2 = 2; | 
|  | optional bool bool_field_3 = 3; | 
|  | optional bool bool_field_4 = 4; | 
|  | optional bool bool_field_5 = 5; | 
|  | optional bool bool_field_6 = 6; | 
|  | optional bool bool_field_7 = 7; | 
|  | optional bool bool_field_8 = 8; | 
|  | optional bool bool_field_9 = 9; | 
|  | optional bool bool_field_10 = 10; | 
|  | optional bool bool_field_11 = 11; | 
|  | optional bool bool_field_12 = 12; | 
|  | optional bool bool_field_13 = 13; | 
|  | optional bool bool_field_14 = 14; | 
|  | optional bool bool_field_15 = 15; | 
|  | optional bool bool_field_16 = 16; | 
|  | optional bool bool_field_17 = 17; | 
|  | optional bool bool_field_18 = 18; | 
|  | optional bool bool_field_19 = 19; | 
|  | optional bool bool_field_20 = 20; | 
|  | optional bool bool_field_21 = 21; | 
|  | optional bool bool_field_22 = 22; | 
|  | optional bool bool_field_23 = 23; | 
|  | optional bool bool_field_24 = 24; | 
|  | optional bool bool_field_25 = 25; | 
|  | optional bool bool_field_26 = 26; | 
|  | optional bool bool_field_27 = 27; | 
|  | optional bool bool_field_28 = 28; | 
|  | optional bool bool_field_29 = 29; | 
|  | optional bool bool_field_30 = 30; | 
|  | optional bool bool_field_31 = 31; | 
|  | optional bool bool_field_32 = 32; | 
|  | } | 
|  |  | 
|  | // Reference to a WKT to test (via generated code inspection), the handling | 
|  | // of #imports.  Within the WKTs, references to each other are just path | 
|  | // based imports, but when reference from another proto file, they should be | 
|  | // conditional to support the framework import style. | 
|  | message WKTRefereceMessage { | 
|  | optional google.protobuf.Any an_any = 1; | 
|  | } | 
|  |  | 
|  | // This is in part a compile test, it ensures that when aliases end up with | 
|  | // the same ObjC name, we drop them to avoid the duplication names. There | 
|  | // is a test to ensure the descriptors are still generated to support | 
|  | // reflection and TextFormat. | 
|  | enum TestEnumObjCNameCollision { | 
|  | option allow_alias = true; | 
|  |  | 
|  | FOO = 1; | 
|  | foo = 1; | 
|  |  | 
|  | BAR = 2; | 
|  | mumble = 2; | 
|  | MUMBLE = 2; | 
|  | } |