Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: third_party/protobuf/src/google/protobuf/descriptor.proto

Issue 2599263002: third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Address comments Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 // https://developers.google.com/protocol-buffers/
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.
(...skipping 22 matching lines...) Expand all
33 // Sanjay Ghemawat, Jeff Dean, and others. 33 // Sanjay Ghemawat, Jeff Dean, and others.
34 // 34 //
35 // The messages in this file describe the definitions found in .proto files. 35 // The messages in this file describe the definitions found in .proto files.
36 // A valid .proto file can be translated directly to a FileDescriptorProto 36 // A valid .proto file can be translated directly to a FileDescriptorProto
37 // without any other information (e.g. without reading its imports). 37 // without any other information (e.g. without reading its imports).
38 38
39 39
40 syntax = "proto2"; 40 syntax = "proto2";
41 41
42 package google.protobuf; 42 package google.protobuf;
43 option go_package = "descriptor"; 43 option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descrip tor";
44 option java_package = "com.google.protobuf"; 44 option java_package = "com.google.protobuf";
45 option java_outer_classname = "DescriptorProtos"; 45 option java_outer_classname = "DescriptorProtos";
46 option csharp_namespace = "Google.Protobuf.Reflection"; 46 option csharp_namespace = "Google.Protobuf.Reflection";
47 option objc_class_prefix = "GPB"; 47 option objc_class_prefix = "GPB";
48 48
49 // descriptor.proto must be optimized for speed because reflection-based 49 // descriptor.proto must be optimized for speed because reflection-based
50 // algorithms don't work during bootstrapping. 50 // algorithms don't work during bootstrapping.
51 option optimize_for = SPEED; 51 option optimize_for = SPEED;
52 52
53 // The protocol compiler can output a FileDescriptorSet containing the .proto 53 // The protocol compiler can output a FileDescriptorSet containing the .proto
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 TYPE_SFIXED64 = 16; 150 TYPE_SFIXED64 = 16;
151 TYPE_SINT32 = 17; // Uses ZigZag encoding. 151 TYPE_SINT32 = 17; // Uses ZigZag encoding.
152 TYPE_SINT64 = 18; // Uses ZigZag encoding. 152 TYPE_SINT64 = 18; // Uses ZigZag encoding.
153 }; 153 };
154 154
155 enum Label { 155 enum Label {
156 // 0 is reserved for errors 156 // 0 is reserved for errors
157 LABEL_OPTIONAL = 1; 157 LABEL_OPTIONAL = 1;
158 LABEL_REQUIRED = 2; 158 LABEL_REQUIRED = 2;
159 LABEL_REPEATED = 3; 159 LABEL_REPEATED = 3;
160 // TODO(sanjay): Should we add LABEL_MAP?
161 }; 160 };
162 161
163 optional string name = 1; 162 optional string name = 1;
164 optional int32 number = 3; 163 optional int32 number = 3;
165 optional Label label = 4; 164 optional Label label = 4;
166 165
167 // If type_name is set, this need not be set. If both this and type_name 166 // If type_name is set, this need not be set. If both this and type_name
168 // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. 167 // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
169 optional Type type = 5; 168 optional Type type = 5;
170 169
(...skipping 24 matching lines...) Expand all
195 // will be used. Otherwise, it's deduced from the field's name by converting 194 // will be used. Otherwise, it's deduced from the field's name by converting
196 // it to camelCase. 195 // it to camelCase.
197 optional string json_name = 10; 196 optional string json_name = 10;
198 197
199 optional FieldOptions options = 8; 198 optional FieldOptions options = 8;
200 } 199 }
201 200
202 // Describes a oneof. 201 // Describes a oneof.
203 message OneofDescriptorProto { 202 message OneofDescriptorProto {
204 optional string name = 1; 203 optional string name = 1;
204 optional OneofOptions options = 2;
205 } 205 }
206 206
207 // Describes an enum type. 207 // Describes an enum type.
208 message EnumDescriptorProto { 208 message EnumDescriptorProto {
209 optional string name = 1; 209 optional string name = 1;
210 210
211 repeated EnumValueDescriptorProto value = 2; 211 repeated EnumValueDescriptorProto value = 2;
212 212
213 optional EnumOptions options = 3; 213 optional EnumOptions options = 3;
214 } 214 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 optional string java_outer_classname = 8; 297 optional string java_outer_classname = 8;
298 298
299 // If set true, then the Java code generator will generate a separate .java 299 // If set true, then the Java code generator will generate a separate .java
300 // file for each top-level message, enum, and service defined in the .proto 300 // file for each top-level message, enum, and service defined in the .proto
301 // file. Thus, these types will *not* be nested inside the outer class 301 // file. Thus, these types will *not* be nested inside the outer class
302 // named by java_outer_classname. However, the outer class will still be 302 // named by java_outer_classname. However, the outer class will still be
303 // generated to contain the file's getDescriptor() method as well as any 303 // generated to contain the file's getDescriptor() method as well as any
304 // top-level extensions defined in the file. 304 // top-level extensions defined in the file.
305 optional bool java_multiple_files = 10 [default=false]; 305 optional bool java_multiple_files = 10 [default=false];
306 306
307 // If set true, then the Java code generator will generate equals() and 307 // This option does nothing.
308 // hashCode() methods for all messages defined in the .proto file. 308 optional bool java_generate_equals_and_hash = 20 [deprecated=true];
309 // This increases generated code size, potentially substantially for large
310 // protos, which may harm a memory-constrained application.
311 // - In the full runtime this is a speed optimization, as the
312 // AbstractMessage base class includes reflection-based implementations of
313 // these methods.
314 // - In the lite runtime, setting this option changes the semantics of
315 // equals() and hashCode() to more closely match those of the full runtime;
316 // the generated methods compute their results based on field values rather
317 // than object identity. (Implementations should not assume that hashcodes
318 // will be consistent across runtimes or versions of the protocol compiler.)
319 optional bool java_generate_equals_and_hash = 20 [default=false];
320 309
321 // If set true, then the Java2 code generator will generate code that 310 // If set true, then the Java2 code generator will generate code that
322 // throws an exception whenever an attempt is made to assign a non-UTF-8 311 // throws an exception whenever an attempt is made to assign a non-UTF-8
323 // byte sequence to a string field. 312 // byte sequence to a string field.
324 // Message reflection will do the same. 313 // Message reflection will do the same.
325 // However, an extension field still accepts non-UTF-8 byte sequences. 314 // However, an extension field still accepts non-UTF-8 byte sequences.
326 // This option has no effect on when used with the lite runtime. 315 // This option has no effect on when used with the lite runtime.
327 optional bool java_string_check_utf8 = 27 [default=false]; 316 optional bool java_string_check_utf8 = 27 [default=false];
328 317
329 318
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 optional bool cc_enable_arenas = 31 [default=false]; 359 optional bool cc_enable_arenas = 31 [default=false];
371 360
372 361
373 // Sets the objective c class prefix which is prepended to all objective c 362 // Sets the objective c class prefix which is prepended to all objective c
374 // generated classes from this .proto. There is no default. 363 // generated classes from this .proto. There is no default.
375 optional string objc_class_prefix = 36; 364 optional string objc_class_prefix = 36;
376 365
377 // Namespace for generated classes; defaults to the package. 366 // Namespace for generated classes; defaults to the package.
378 optional string csharp_namespace = 37; 367 optional string csharp_namespace = 37;
379 368
369 // By default Swift generators will take the proto package and CamelCase it
370 // replacing '.' with underscore and use that to prefix the types/symbols
371 // defined. When this options is provided, they will use this value instead
372 // to prefix the types/symbols defined.
373 optional string swift_prefix = 39;
374
380 // The parser stores options it doesn't recognize here. See above. 375 // The parser stores options it doesn't recognize here. See above.
381 repeated UninterpretedOption uninterpreted_option = 999; 376 repeated UninterpretedOption uninterpreted_option = 999;
382 377
383 // Clients can define custom options in extensions of this message. See above. 378 // Clients can define custom options in extensions of this message. See above.
384 extensions 1000 to max; 379 extensions 1000 to max;
385 380
386 reserved 38; 381 reserved 38;
387 } 382 }
388 383
389 message MessageOptions { 384 message MessageOptions {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 // Implementations may choose not to generate the map_entry=true message, but 429 // Implementations may choose not to generate the map_entry=true message, but
435 // use a native map in the target language to hold the keys and values. 430 // use a native map in the target language to hold the keys and values.
436 // The reflection APIs in such implementions still need to work as 431 // The reflection APIs in such implementions still need to work as
437 // if the field is a repeated message field. 432 // if the field is a repeated message field.
438 // 433 //
439 // NOTE: Do not set the option in .proto files. Always use the maps syntax 434 // NOTE: Do not set the option in .proto files. Always use the maps syntax
440 // instead. The option should only be implicitly set by the proto compiler 435 // instead. The option should only be implicitly set by the proto compiler
441 // parser. 436 // parser.
442 optional bool map_entry = 7; 437 optional bool map_entry = 7;
443 438
439 reserved 8; // javalite_serializable
440
441
444 // The parser stores options it doesn't recognize here. See above. 442 // The parser stores options it doesn't recognize here. See above.
445 repeated UninterpretedOption uninterpreted_option = 999; 443 repeated UninterpretedOption uninterpreted_option = 999;
446 444
447 // Clients can define custom options in extensions of this message. See above. 445 // Clients can define custom options in extensions of this message. See above.
448 extensions 1000 to max; 446 extensions 1000 to max;
449 } 447 }
450 448
451 message FieldOptions { 449 message FieldOptions {
452 // The ctype option instructs the C++ code generator to use a different 450 // The ctype option instructs the C++ code generator to use a different
453 // representation of the field than it normally would. See the specific 451 // representation of the field than it normally would. See the specific
454 // options below. This option is not yet implemented in the open source 452 // options below. This option is not yet implemented in the open source
455 // release -- sorry, we'll try to include it in a future version! 453 // release -- sorry, we'll try to include it in a future version!
456 optional CType ctype = 1 [default = STRING]; 454 optional CType ctype = 1 [default = STRING];
457 enum CType { 455 enum CType {
458 // Default mode. 456 // Default mode.
459 STRING = 0; 457 STRING = 0;
460 458
461 CORD = 1; 459 CORD = 1;
462 460
463 STRING_PIECE = 2; 461 STRING_PIECE = 2;
464 } 462 }
465 // The packed option can be enabled for repeated primitive fields to enable 463 // The packed option can be enabled for repeated primitive fields to enable
466 // a more efficient representation on the wire. Rather than repeatedly 464 // a more efficient representation on the wire. Rather than repeatedly
467 // writing the tag and type for each element, the entire array is encoded as 465 // writing the tag and type for each element, the entire array is encoded as
468 // a single length-delimited blob. In proto3, only explicit setting it to 466 // a single length-delimited blob. In proto3, only explicit setting it to
469 // false will avoid using packed encoding. 467 // false will avoid using packed encoding.
470 optional bool packed = 2; 468 optional bool packed = 2;
471 469
472
473 // The jstype option determines the JavaScript type used for values of the 470 // The jstype option determines the JavaScript type used for values of the
474 // field. The option is permitted only for 64 bit integral and fixed types 471 // field. The option is permitted only for 64 bit integral and fixed types
475 // (int64, uint64, sint64, fixed64, sfixed64). By default these types are 472 // (int64, uint64, sint64, fixed64, sfixed64). By default these types are
476 // represented as JavaScript strings. This avoids loss of precision that can 473 // represented as JavaScript strings. This avoids loss of precision that can
477 // happen when a large value is converted to a floating point JavaScript 474 // happen when a large value is converted to a floating point JavaScript
478 // numbers. Specifying JS_NUMBER for the jstype causes the generated 475 // numbers. Specifying JS_NUMBER for the jstype causes the generated
479 // JavaScript code to use the JavaScript "number" type instead of strings. 476 // JavaScript code to use the JavaScript "number" type instead of strings.
480 // This option is an enum to permit additional types to be added, 477 // This option is an enum to permit additional types to be added,
481 // e.g. goog.math.Integer. 478 // e.g. goog.math.Integer.
482 optional JSType jstype = 6 [default = JS_NORMAL]; 479 optional JSType jstype = 6 [default = JS_NORMAL];
(...skipping 20 matching lines...) Expand all
503 // overhead typically needed to implement it. 500 // overhead typically needed to implement it.
504 // 501 //
505 // This option does not affect the public interface of any generated code; 502 // This option does not affect the public interface of any generated code;
506 // all method signatures remain the same. Furthermore, thread-safety of the 503 // all method signatures remain the same. Furthermore, thread-safety of the
507 // interface is not affected by this option; const methods remain safe to 504 // interface is not affected by this option; const methods remain safe to
508 // call from multiple threads concurrently, while non-const methods continue 505 // call from multiple threads concurrently, while non-const methods continue
509 // to require exclusive access. 506 // to require exclusive access.
510 // 507 //
511 // 508 //
512 // Note that implementations may choose not to check required fields within 509 // Note that implementations may choose not to check required fields within
513 // a lazy sub-message. That is, calling IsInitialized() on the outher message 510 // a lazy sub-message. That is, calling IsInitialized() on the outer message
514 // may return true even if the inner message has missing required fields. 511 // may return true even if the inner message has missing required fields.
515 // This is necessary because otherwise the inner message would have to be 512 // This is necessary because otherwise the inner message would have to be
516 // parsed in order to perform the check, defeating the purpose of lazy 513 // parsed in order to perform the check, defeating the purpose of lazy
517 // parsing. An implementation which chooses not to check required fields 514 // parsing. An implementation which chooses not to check required fields
518 // must be consistent about it. That is, for any particular sub-message, the 515 // must be consistent about it. That is, for any particular sub-message, the
519 // implementation must either *always* check its required fields, or *never* 516 // implementation must either *always* check its required fields, or *never*
520 // check its required fields, regardless of whether or not the message has 517 // check its required fields, regardless of whether or not the message has
521 // been parsed. 518 // been parsed.
522 optional bool lazy = 5 [default=false]; 519 optional bool lazy = 5 [default=false];
523 520
524 // Is this field deprecated? 521 // Is this field deprecated?
525 // Depending on the target platform, this can emit Deprecated annotations 522 // Depending on the target platform, this can emit Deprecated annotations
526 // for accessors, or it will be completely ignored; in the very least, this 523 // for accessors, or it will be completely ignored; in the very least, this
527 // is a formalization for deprecating fields. 524 // is a formalization for deprecating fields.
528 optional bool deprecated = 3 [default=false]; 525 optional bool deprecated = 3 [default=false];
529 526
530 // For Google-internal migration only. Do not use. 527 // For Google-internal migration only. Do not use.
531 optional bool weak = 10 [default=false]; 528 optional bool weak = 10 [default=false];
532 529
533 530
534 // The parser stores options it doesn't recognize here. See above. 531 // The parser stores options it doesn't recognize here. See above.
535 repeated UninterpretedOption uninterpreted_option = 999; 532 repeated UninterpretedOption uninterpreted_option = 999;
536 533
537 // Clients can define custom options in extensions of this message. See above. 534 // Clients can define custom options in extensions of this message. See above.
538 extensions 1000 to max; 535 extensions 1000 to max;
536
537 reserved 4; // removed jtype
538 }
539
540 message OneofOptions {
541 // The parser stores options it doesn't recognize here. See above.
542 repeated UninterpretedOption uninterpreted_option = 999;
543
544 // Clients can define custom options in extensions of this message. See above.
545 extensions 1000 to max;
539 } 546 }
540 547
541 message EnumOptions { 548 message EnumOptions {
542 549
543 // Set this option to true to allow mapping different tag names to the same 550 // Set this option to true to allow mapping different tag names to the same
544 // value. 551 // value.
545 optional bool allow_alias = 2; 552 optional bool allow_alias = 2;
546 553
547 // Is this enum deprecated? 554 // Is this enum deprecated?
548 // Depending on the target platform, this can emit Deprecated annotations 555 // Depending on the target platform, this can emit Deprecated annotations
549 // for the enum, or it will be completely ignored; in the very least, this 556 // for the enum, or it will be completely ignored; in the very least, this
550 // is a formalization for deprecating enums. 557 // is a formalization for deprecating enums.
551 optional bool deprecated = 3 [default=false]; 558 optional bool deprecated = 3 [default=false];
552 559
560
553 // The parser stores options it doesn't recognize here. See above. 561 // The parser stores options it doesn't recognize here. See above.
554 repeated UninterpretedOption uninterpreted_option = 999; 562 repeated UninterpretedOption uninterpreted_option = 999;
555 563
556 // Clients can define custom options in extensions of this message. See above. 564 // Clients can define custom options in extensions of this message. See above.
557 extensions 1000 to max; 565 extensions 1000 to max;
558 } 566 }
559 567
560 message EnumValueOptions { 568 message EnumValueOptions {
561 // Is this enum value deprecated? 569 // Is this enum value deprecated?
562 // Depending on the target platform, this can emit Deprecated annotations 570 // Depending on the target platform, this can emit Deprecated annotations
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 // framework. We apologize for hoarding these numbers to ourselves, but 605 // framework. We apologize for hoarding these numbers to ourselves, but
598 // we were already using them long before we decided to release Protocol 606 // we were already using them long before we decided to release Protocol
599 // Buffers. 607 // Buffers.
600 608
601 // Is this method deprecated? 609 // Is this method deprecated?
602 // Depending on the target platform, this can emit Deprecated annotations 610 // Depending on the target platform, this can emit Deprecated annotations
603 // for the method, or it will be completely ignored; in the very least, 611 // for the method, or it will be completely ignored; in the very least,
604 // this is a formalization for deprecating methods. 612 // this is a formalization for deprecating methods.
605 optional bool deprecated = 33 [default=false]; 613 optional bool deprecated = 33 [default=false];
606 614
615 // Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
616 // or neither? HTTP based RPC implementation may choose GET verb for safe
617 // methods, and PUT verb for idempotent methods instead of the default POST.
618 enum IdempotencyLevel {
619 IDEMPOTENCY_UNKNOWN = 0;
620 NO_SIDE_EFFECTS = 1; // implies idempotent
621 IDEMPOTENT = 2; // idempotent, but may have side effects
622 }
623 optional IdempotencyLevel idempotency_level =
624 34 [default=IDEMPOTENCY_UNKNOWN];
625
607 // The parser stores options it doesn't recognize here. See above. 626 // The parser stores options it doesn't recognize here. See above.
608 repeated UninterpretedOption uninterpreted_option = 999; 627 repeated UninterpretedOption uninterpreted_option = 999;
609 628
610 // Clients can define custom options in extensions of this message. See above. 629 // Clients can define custom options in extensions of this message. See above.
611 extensions 1000 to max; 630 extensions 1000 to max;
612 } 631 }
613 632
614 633
615 // A message representing a option the parser does not recognize. This only 634 // A message representing a option the parser does not recognize. This only
616 // appears in options protos created by the compiler::Parser class. 635 // appears in options protos created by the compiler::Parser class.
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 // Identifies the starting offset in bytes in the generated code 813 // Identifies the starting offset in bytes in the generated code
795 // that relates to the identified object. 814 // that relates to the identified object.
796 optional int32 begin = 3; 815 optional int32 begin = 3;
797 816
798 // Identifies the ending offset in bytes in the generated code that 817 // Identifies the ending offset in bytes in the generated code that
799 // relates to the identified offset. The end offset should be one past 818 // relates to the identified offset. The end offset should be one past
800 // the last relevant byte (so the length of the text = end - begin). 819 // the last relevant byte (so the length of the text = end - begin).
801 optional int32 end = 4; 820 optional int32 end = 4;
802 } 821 }
803 } 822 }
OLDNEW
« no previous file with comments | « third_party/protobuf/src/google/protobuf/descriptor.cc ('k') | third_party/protobuf/src/google/protobuf/descriptor.pb.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698