| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // http://code.google.com/p/protobuf/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| 11 // * Redistributions in binary form must reproduce the above | 11 // * Redistributions in binary form must reproduce the above |
| 12 // copyright notice, this list of conditions and the following disclaimer | 12 // copyright notice, this list of conditions and the following disclaimer |
| 13 // in the documentation and/or other materials provided with the | 13 // in the documentation and/or other materials provided with the |
| (...skipping 11 matching lines...) Expand all Loading... |
| 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 30 | 30 |
| 31 // Author: benjy@google.com (Benjy Weinberger) | 31 // Author: benjy@google.com (Benjy Weinberger) |
| 32 // Based on original Protocol Buffers design by | 32 // Based on original Protocol Buffers design by |
| 33 // Sanjay Ghemawat, Jeff Dean, and others. | 33 // Sanjay Ghemawat, Jeff Dean, and others. |
| 34 // | 34 // |
| 35 // A proto file used to test the "custom options" feature of google.protobuf. | 35 // A proto file used to test the "custom options" feature of proto2. |
| 36 | 36 |
| 37 syntax = "proto2"; | |
| 38 | 37 |
| 39 // Some generic_services option(s) added automatically. | 38 // Some generic_services option(s) added automatically. |
| 40 // See: http://go/proto2-generic-services-default | 39 // See: http://go/proto2-generic-services-default |
| 41 option cc_generic_services = true; // auto-added | 40 option cc_generic_services = true; // auto-added |
| 42 option java_generic_services = true; // auto-added | 41 option java_generic_services = true; // auto-added |
| 43 option py_generic_services = true; | 42 option py_generic_services = true; |
| 44 | 43 |
| 45 // A custom file option (defined below). | 44 // A custom file option (defined below). |
| 46 option (file_opt1) = 9876543210; | 45 option (file_opt1) = 9876543210; |
| 47 | 46 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 option (double_opt) = -154; | 211 option (double_opt) = -154; |
| 213 } | 212 } |
| 214 | 213 |
| 215 // Options of complex message types, themselves combined and extended in | 214 // Options of complex message types, themselves combined and extended in |
| 216 // various ways. | 215 // various ways. |
| 217 | 216 |
| 218 message ComplexOptionType1 { | 217 message ComplexOptionType1 { |
| 219 optional int32 foo = 1; | 218 optional int32 foo = 1; |
| 220 optional int32 foo2 = 2; | 219 optional int32 foo2 = 2; |
| 221 optional int32 foo3 = 3; | 220 optional int32 foo3 = 3; |
| 222 repeated int32 foo4 = 4; | |
| 223 | 221 |
| 224 extensions 100 to max; | 222 extensions 100 to max; |
| 225 } | 223 } |
| 226 | 224 |
| 227 message ComplexOptionType2 { | 225 message ComplexOptionType2 { |
| 228 optional ComplexOptionType1 bar = 1; | 226 optional ComplexOptionType1 bar = 1; |
| 229 optional int32 baz = 2; | 227 optional int32 baz = 2; |
| 230 | 228 |
| 231 message ComplexOptionType4 { | 229 message ComplexOptionType4 { |
| 232 optional int32 waldo = 1; | 230 optional int32 waldo = 1; |
| 233 | 231 |
| 234 extend google.protobuf.MessageOptions { | 232 extend google.protobuf.MessageOptions { |
| 235 optional ComplexOptionType4 complex_opt4 = 7633546; | 233 optional ComplexOptionType4 complex_opt4 = 7633546; |
| 236 } | 234 } |
| 237 } | 235 } |
| 238 | 236 |
| 239 optional ComplexOptionType4 fred = 3; | 237 optional ComplexOptionType4 fred = 3; |
| 240 repeated ComplexOptionType4 barney = 4; | |
| 241 | 238 |
| 242 extensions 100 to max; | 239 extensions 100 to max; |
| 243 } | 240 } |
| 244 | 241 |
| 245 message ComplexOptionType3 { | 242 message ComplexOptionType3 { |
| 246 optional int32 qux = 1; | 243 optional int32 qux = 1; |
| 247 | 244 |
| 248 optional group ComplexOptionType5 = 2 { | 245 optional group ComplexOptionType5 = 2 { |
| 249 optional int32 plugh = 3; | 246 optional int32 plugh = 3; |
| 250 } | 247 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 267 optional group ComplexOpt6 = 7595468 { | 264 optional group ComplexOpt6 = 7595468 { |
| 268 optional int32 xyzzy = 7593951; | 265 optional int32 xyzzy = 7593951; |
| 269 } | 266 } |
| 270 } | 267 } |
| 271 | 268 |
| 272 // Note that we try various different ways of naming the same extension. | 269 // Note that we try various different ways of naming the same extension. |
| 273 message VariousComplexOptions { | 270 message VariousComplexOptions { |
| 274 option (.protobuf_unittest.complex_opt1).foo = 42; | 271 option (.protobuf_unittest.complex_opt1).foo = 42; |
| 275 option (protobuf_unittest.complex_opt1).(.protobuf_unittest.quux) = 324; | 272 option (protobuf_unittest.complex_opt1).(.protobuf_unittest.quux) = 324; |
| 276 option (.protobuf_unittest.complex_opt1).(protobuf_unittest.corge).qux = 876; | 273 option (.protobuf_unittest.complex_opt1).(protobuf_unittest.corge).qux = 876; |
| 277 option (protobuf_unittest.complex_opt1).foo4 = 99; | |
| 278 option (protobuf_unittest.complex_opt1).foo4 = 88; | |
| 279 option (complex_opt2).baz = 987; | 274 option (complex_opt2).baz = 987; |
| 280 option (complex_opt2).(grault) = 654; | 275 option (complex_opt2).(grault) = 654; |
| 281 option (complex_opt2).bar.foo = 743; | 276 option (complex_opt2).bar.foo = 743; |
| 282 option (complex_opt2).bar.(quux) = 1999; | 277 option (complex_opt2).bar.(quux) = 1999; |
| 283 option (complex_opt2).bar.(protobuf_unittest.corge).qux = 2008; | 278 option (complex_opt2).bar.(protobuf_unittest.corge).qux = 2008; |
| 284 option (complex_opt2).(garply).foo = 741; | 279 option (complex_opt2).(garply).foo = 741; |
| 285 option (complex_opt2).(garply).(.protobuf_unittest.quux) = 1998; | 280 option (complex_opt2).(garply).(.protobuf_unittest.quux) = 1998; |
| 286 option (complex_opt2).(protobuf_unittest.garply).(corge).qux = 2121; | 281 option (complex_opt2).(protobuf_unittest.garply).(corge).qux = 2121; |
| 287 option (ComplexOptionType2.ComplexOptionType4.complex_opt4).waldo = 1971; | 282 option (ComplexOptionType2.ComplexOptionType4.complex_opt4).waldo = 1971; |
| 288 option (complex_opt2).fred.waldo = 321; | 283 option (complex_opt2).fred.waldo = 321; |
| 289 option (complex_opt2).barney = { waldo: 101 }; | |
| 290 option (complex_opt2).barney = { waldo: 212 }; | |
| 291 option (protobuf_unittest.complex_opt3).qux = 9; | 284 option (protobuf_unittest.complex_opt3).qux = 9; |
| 292 option (complex_opt3).complexoptiontype5.plugh = 22; | 285 option (complex_opt3).complexoptiontype5.plugh = 22; |
| 293 option (complexopt6).xyzzy = 24; | 286 option (complexopt6).xyzzy = 24; |
| 294 } | 287 } |
| 295 | 288 |
| 296 // ------------------------------------------------------ | 289 // ------------------------------------------------------ |
| 297 // Definitions for testing aggregate option parsing. | 290 // Definitions for testing aggregate option parsing. |
| 298 // See descriptor_unittest.cc. | 291 // See descriptor_unittest.cc. |
| 299 | 292 |
| 300 message AggregateMessageSet { | 293 message AggregateMessageSet { |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 optional int32 nested_field = 1 [(field_opt1) = 1002]; | 378 optional int32 nested_field = 1 [(field_opt1) = 1002]; |
| 386 } | 379 } |
| 387 enum NestedEnum { | 380 enum NestedEnum { |
| 388 option (enum_opt1) = 1003; | 381 option (enum_opt1) = 1003; |
| 389 NESTED_ENUM_VALUE = 1 [(enum_value_opt1) = 1004]; | 382 NESTED_ENUM_VALUE = 1 [(enum_value_opt1) = 1004]; |
| 390 } | 383 } |
| 391 extend google.protobuf.FileOptions { | 384 extend google.protobuf.FileOptions { |
| 392 optional int32 nested_extension = 7912573 [(field_opt2) = 1005]; | 385 optional int32 nested_extension = 7912573 [(field_opt2) = 1005]; |
| 393 } | 386 } |
| 394 } | 387 } |
| 395 | |
| 396 // Custom message option that has a required enum field. | |
| 397 // WARNING: this is strongly discouraged! | |
| 398 message OldOptionType { | |
| 399 enum TestEnum { | |
| 400 OLD_VALUE = 0; | |
| 401 } | |
| 402 required TestEnum value = 1; | |
| 403 } | |
| 404 | |
| 405 // Updated version of the custom option above. | |
| 406 message NewOptionType { | |
| 407 enum TestEnum { | |
| 408 OLD_VALUE = 0; | |
| 409 NEW_VALUE = 1; | |
| 410 } | |
| 411 required TestEnum value = 1; | |
| 412 } | |
| 413 | |
| 414 extend google.protobuf.MessageOptions { | |
| 415 optional OldOptionType required_enum_opt = 106161807; | |
| 416 } | |
| 417 | |
| 418 // Test message using the "required_enum_opt" option defined above. | |
| 419 message TestMessageWithRequiredEnumOption { | |
| 420 option (required_enum_opt) = { value: OLD_VALUE }; | |
| 421 } | |
| OLD | NEW |