54 #ifndef GOOGLE_PROTOBUF_DESCRIPTOR_H__ 55 #define GOOGLE_PROTOBUF_DESCRIPTOR_H__ 80 class EnumValueDescriptor;
81 class ServiceDescriptor;
82 class MethodDescriptor;
84 class DescriptorDatabase;
110 class DescriptorBuilder;
111 class FileDescriptorTables;
118 class GeneratedMessageReflection;
123 class CommandLineInterface;
126 namespace descriptor_unittest {
162 : include_comments(
false),
163 elide_group_body(
false),
164 elide_oneof_body(
false) {}
175 const string&
name()
const;
182 const string& full_name()
const;
209 string DebugString()
const;
218 bool is_placeholder()
const;
223 int field_count()
const;
238 const string& lowercase_name)
const;
245 const string& camelcase_name)
const;
248 int oneof_decl_count()
const;
259 int nested_type_count()
const;
262 const Descriptor* nested_type(
int index)
const;
266 const Descriptor* FindNestedTypeByName(
const string& name)
const;
271 int enum_type_count()
const;
293 int extension_range_count()
const;
300 bool IsExtensionNumber(
int number)
const;
303 const ExtensionRange* FindExtensionRangeContainingNumber(
int number)
const;
307 int extension_count()
const;
318 const FieldDescriptor* FindExtensionByLowercaseName(
const string& name)
const;
322 const FieldDescriptor* FindExtensionByCamelcaseName(
const string& name)
const;
333 int reserved_range_count()
const;
340 bool IsReservedNumber(
int number)
const;
343 const ReservedRange* FindReservedRangeContainingNumber(
int number)
const;
346 int reserved_name_count()
const;
349 const string& reserved_name(
int index)
const;
352 bool IsReservedName(
const string& name)
const;
365 friend class ::google::protobuf::descriptor_unittest::DescriptorTest;
368 friend class ::google::protobuf::io::Printer;
379 bool include_opening_clause)
const;
383 void GetLocationPath(std::vector<int>*
output)
const;
386 const string* full_name_;
392 bool is_placeholder_;
394 bool is_unqualified_placeholder_;
398 int oneof_decl_count_;
400 int nested_type_count_;
402 int enum_type_count_;
404 int extension_range_count_;
406 int extension_count_;
408 int reserved_range_count_;
410 int reserved_name_count_;
411 const string** reserved_names_;
485 CPPTYPE_MESSAGE = 10,
503 static const int kMaxNumber = (1 << 29) - 1;
507 static const int kFirstReservedNumber = 19000;
510 static const int kLastReservedNumber = 19999;
512 const string&
name()
const;
513 const string& full_name()
const;
514 const string& json_name()
const;
516 bool is_extension()
const;
525 const string& lowercase_name()
const;
536 const string& camelcase_name()
const;
539 const char* type_name()
const;
541 const char* cpp_type_name()
const;
544 bool is_required()
const;
545 bool is_optional()
const;
546 bool is_repeated()
const;
547 bool is_packable()
const;
549 bool is_packed()
const;
559 bool has_default_value()
const;
563 int32 default_value_int32()
const;
566 int64 default_value_int64()
const;
569 uint32 default_value_uint32()
const;
572 uint64 default_value_uint64()
const;
575 float default_value_float()
const;
578 double default_value_double()
const;
581 bool default_value_bool()
const;
589 const string& default_value_string()
const;
600 int index_in_oneof()
const;
628 string DebugString()
const;
656 friend class ::google::protobuf::io::Printer;
662 enum PrintLabelFlag { PRINT_LABEL, OMIT_LABEL };
663 void DebugString(
int depth, PrintLabelFlag print_label_flag,
669 string DefaultValueAsString(
bool quote_string_type)
const;
672 string FieldTypeNameDebugString()
const;
676 void GetLocationPath(std::vector<int>*
output)
const;
679 const string* full_name_;
680 const string* lowercase_name_;
681 const string* camelcase_name_;
687 const string* json_name_;
704 bool has_default_value_;
718 static const CppType kTypeToCppTypeMap[MAX_TYPE + 1];
720 static const char *
const kTypeToName[MAX_TYPE + 1];
722 static const char *
const kCppTypeToName[MAX_CPPTYPE + 1];
724 static const char *
const kLabelToName[MAX_LABEL + 1];
738 const string&
name()
const;
739 const string& full_name()
const;
748 int field_count()
const;
757 string DebugString()
const;
771 friend class ::google::protobuf::io::Printer;
779 void GetLocationPath(std::vector<int>*
output)
const;
782 const string* full_name_;
804 const string&
name()
const;
807 const string& full_name()
const;
817 int value_count()
const;
842 string DebugString()
const;
851 bool is_placeholder()
const;
864 friend class ::google::protobuf::io::Printer;
875 FindValueByNumberCreatingIfUnknown(
int number)
const;
884 void GetLocationPath(std::vector<int>*
output)
const;
887 const string* full_name_;
893 bool is_placeholder_;
895 bool is_unqualified_placeholder_;
921 const string&
name()
const;
930 const string& full_name()
const;
946 string DebugString()
const;
963 friend class ::google::protobuf::io::Printer;
971 void GetLocationPath(std::vector<int>*
output)
const;
974 const string* full_name_;
997 const string&
name()
const;
999 const string& full_name()
const;
1014 int method_count()
const;
1025 string DebugString()
const;
1042 friend class ::google::protobuf::io::Printer;
1049 void GetLocationPath(std::vector<int>*
output)
const;
1051 const string* name_;
1052 const string* full_name_;
1076 const string&
name()
const;
1078 const string& full_name()
const;
1091 bool client_streaming()
const;
1093 bool server_streaming()
const;
1106 string DebugString()
const;
1123 friend class ::google::protobuf::io::Printer;
1131 void GetLocationPath(std::vector<int>*
output)
const;
1133 const string* name_;
1134 const string* full_name_;
1139 bool client_streaming_;
1140 bool server_streaming_;
1160 const string&
name()
const;
1163 const string& package()
const;
1170 int dependency_count()
const;
1177 int public_dependency_count()
const;
1185 int weak_dependency_count()
const;
1193 int message_type_count()
const;
1200 int enum_type_count()
const;
1206 int service_count()
const;
1213 int extension_count()
const;
1232 static const char* SyntaxName(
Syntax syntax);
1247 const FieldDescriptor* FindExtensionByLowercaseName(
const string& name)
const;
1250 const FieldDescriptor* FindExtensionByCamelcaseName(
const string& name)
const;
1265 string DebugString()
const;
1273 bool is_placeholder()
const;
1284 bool GetSourceLocation(
const std::vector<int>&
path,
1290 const string* name_;
1291 const string* package_;
1293 int dependency_count_;
1295 int public_dependency_count_;
1296 int* public_dependencies_;
1297 int weak_dependency_count_;
1298 int* weak_dependencies_;
1299 int message_type_count_;
1301 int enum_type_count_;
1305 int extension_count_;
1307 bool is_placeholder_;
1404 const string& symbol_name)
const;
1430 void FindAllExtensions(
const Descriptor* extendee,
1431 std::vector<const FieldDescriptor*>*
out)
const;
1461 virtual void AddError(
1548 static void InternalAddGeneratedFile(
1549 const void* encoded_file_descriptor,
int size);
1561 void InternalDontEnforceDependencies();
1565 underlay_ = underlay;
1571 bool InternalIsFileLoaded(
const string&
filename)
const;
1576 void AddUnusedImportTrackFile(
const string& file_name);
1577 void ClearUnusedImportTrackFiles();
1591 bool IsSubSymbolOfBuiltType(
const string& name)
const;
1597 bool TryFindFileInFallbackDatabase(
const string& name)
const;
1598 bool TryFindSymbolInFallbackDatabase(
const string& name)
const;
1622 bool enforce_dependencies_;
1623 bool allow_unknown_;
1625 std::set<string> unused_import_track_files_;
1633 #define PROTOBUF_DEFINE_ACCESSOR(CLASS, FIELD, TYPE) \ 1634 inline TYPE CLASS::FIELD() const { return FIELD##_; } 1637 #define PROTOBUF_DEFINE_STRING_ACCESSOR(CLASS, FIELD) \ 1638 inline const string& CLASS::FIELD() const { return *FIELD##_; } 1641 #define PROTOBUF_DEFINE_ARRAY_ACCESSOR(CLASS, FIELD, TYPE) \ 1642 inline TYPE CLASS::FIELD(int index) const { return FIELD##s_ + index; } 1644 #define PROTOBUF_DEFINE_OPTIONS_ACCESSOR(CLASS, TYPE) \ 1645 inline const TYPE& CLASS::options() const { return *options_; } 1665 const Descriptor::ExtensionRange*)
1671 const Descriptor::ReservedRange*)
1761 const ServiceDescriptor*)
1763 const FieldDescriptor*)
1765 #undef PROTOBUF_DEFINE_ACCESSOR 1766 #undef PROTOBUF_DEFINE_STRING_ACCESSOR 1767 #undef PROTOBUF_DEFINE_ARRAY_ACCESSOR 1772 return FindExtensionRangeContainingNumber(number) !=
NULL;
1776 return FindReservedRangeContainingNumber(number) !=
NULL;
1780 for (
int i = 0;
i < reserved_name_count();
i++) {
1781 if (name == reserved_name(
i)) {
1791 return *reserved_names_[
index];
1795 return label() == LABEL_REQUIRED;
1799 return label() == LABEL_OPTIONAL;
1803 return label() == LABEL_REPEATED;
1813 if (!is_extension_) {
1814 return static_cast<int>(
this - containing_type_->fields_);
1815 }
else if (extension_scope_ !=
NULL) {
1816 return static_cast<int>(
this - extension_scope_->extensions_);
1818 return static_cast<int>(
this - file_->extensions_);
1823 if (containing_type_ ==
NULL) {
1824 return static_cast<int>(
this - file_->message_types_);
1826 return static_cast<int>(
this - containing_type_->nested_types_);
1831 return static_cast<int>(
this - containing_type_->oneof_decls_);
1835 if (containing_type_ ==
NULL) {
1836 return static_cast<int>(
this - file_->enum_types_);
1838 return static_cast<int>(
this - containing_type_->enum_types_);
1843 return static_cast<int>(
this - type_->values_);
1847 return static_cast<int>(
this - file_->services_);
1851 return static_cast<int>(
this - service_->methods_);
1855 return kTypeToName[type_];
1859 return kTypeToCppTypeMap[type_];
1863 return kCppTypeToName[kTypeToCppTypeMap[type_]];
1867 return kTypeToCppTypeMap[
type];
1871 return kTypeToName[
type];
1886 return dependencies_[
index];
1891 return dependencies_[public_dependencies_[
index]];
1896 return dependencies_[weak_dependencies_[
index]];
1906 return fields_[
index];
1912 #endif // GOOGLE_PROTOBUF_DESCRIPTOR_H__ Definition: descriptor.h:457
Definition: descriptor.h:1451
const char * cpp_type_name() const
const FieldDescriptor containing_oneof
Definition: descriptor.h:1688
Definition: descriptor.h:801
PyObject * FindExtensionByName(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:257
Definition: descriptor.pb.h:1829
Definition: descriptor.h:1453
int start_column
Definition: descriptor.h:139
Definition: message.h:179
EGLStreamKHR EGLint EGLint EGLint size
Definition: eglext.h:984
DescriptorPool * generated_pool
Definition: def.c:96
bool IsExtensionNumber(int number) const
PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, extension_range, const Descriptor::ExtensionRange *) PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor
void AllowUnknownDependencies()
Definition: descriptor.h:1510
const FieldDescriptor * field
Definition: parser_unittest.cc:2279
int start
Definition: descriptor.h:328
const FieldDescriptor const OneofDescriptor * PROTOBUF_DEFINE_ACCESSOR(FieldDescriptor, default_value_enum, const EnumValueDescriptor *) PROTOBUF_DEFINE_ARRAY_ACCESSOR(EnumDescriptor
uint64 default_value_uint64_
Definition: descriptor.h:709
PyObject * FindEnumTypeByName(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:274
Definition: type.pb.h:111
void internal_set_underlay(const DescriptorPool *underlay)
Definition: descriptor.h:1564
Definition: descriptor.h:136
PyObject * FindOneofByName(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:291
DescriptorProto
Definition: descriptor_pb2.py:1637
FileOptions
Definition: descriptor_pb2.py:1702
Definition: descriptor.h:151
Definition: descriptor.h:1450
Definition: protobuf.h:90
Definition: descriptor.h:994
#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName)
Definition: macros.h:40
CppType
Definition: descriptor.h:475
struct Descriptor Descriptor
Definition: protobuf.h:23
SourceCodeInfo
Definition: descriptor_pb2.py:1766
const FieldDescriptor const OneofDescriptor const EnumValueDescriptor service
Definition: descriptor.h:1760
path
Definition: generate.py:74
const Descriptor * descriptor
Definition: descriptor.cc:271
struct FieldDescriptor FieldDescriptor
Definition: protobuf.h:24
const FileDescriptor * weak_dependency(int index) const
Definition: descriptor.h:1894
virtual void AddWarning(const string &, const string &, const Message *, ErrorLocation, const string &)
Definition: descriptor.h:1471
const FileDescriptor * dependency(int index) const
Definition: descriptor.h:1885
int32 default_value_int32_
Definition: descriptor.h:706
Definition: descriptor.pb.h:2578
std::string TypeName(google::protobuf::FieldDescriptor *field)
Definition: descriptor.h:1156
Message
Definition: peerconnection_unittest.cc:105
Definition: descriptor.cc:392
bool IsReservedNumber(int number) const
Definition: descriptor.h:172
uint32 default_value_uint32_
Definition: descriptor.h:708
EGLenum EGLObjectKHR EGLLabelKHR label
Definition: eglext.h:121
PyObject * FindFieldByName(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:239
Definition: descriptor.h:1455
Definition: descriptor.pb.h:2683
Syntax
Definition: descriptor.h:1226
USVString filename
Definition: ErrorEvent.idl:46
Definition: descriptor.pb.h:2252
Definition: descriptor.h:287
Definition: descriptor.h:1449
string leading_comments
Definition: descriptor.h:144
ServiceOptions
Definition: descriptor_pb2.py:1737
FieldDescriptorProto
Definition: descriptor_pb2.py:1660
Definition: descriptor.h:1438
void EnforceWeakDependencies(bool enforce)
Definition: descriptor.h:1516
FieldOptions
Definition: descriptor_pb2.py:1716
int start_line
Definition: descriptor.h:137
const gchar * contents
Definition: WebKitDOMDeprecated.h:51
int64 default_value_int64_
Definition: descriptor.h:707
Definition: descriptor.pb.h:1438
Definition: descriptor.h:439
const int32_t * values_
Definition: GPBDescriptor.m:629
GLint location
Definition: gl2.h:455
VoEFile * file
Definition: voe_cmd_test.cc:59
float default_value_float_
Definition: descriptor.h:710
Definition: protobuf.h:85
const FieldDescriptor const OneofDescriptor value
Definition: descriptor.h:1717
Definition: generated_message_reflection.h:100
Label
Definition: descriptor.h:493
int32_t int32
Definition: port.h:130
DebugStringOptions()
Definition: descriptor.h:161
int end
Definition: descriptor.h:329
bool IsReservedName(const string &name) const
Definition: descriptor.pb.h:3323
Definition: descriptor.h:460
int end
Definition: descriptor.h:289
FileDescriptorProto
Definition: descriptor_pb2.py:1630
Definition: descriptor.h:458
static const char * CppTypeName(CppType cpp_type)
Definition: descriptor.h:1874
int int * out
Definition: gcc-loops.cpp:206
Definition: descriptor.h:1073
Definition: descriptor.pb.h:1319
Type
Definition: descriptor.h:443
GLuint index
Definition: gl2.h:383
EGLAttrib * value
Definition: eglext.h:120
#define PROTOBUF_DEFINE_STRING_ACCESSOR(CLASS, FIELD)
Definition: descriptor.h:1637
const char * type_name() const
bool include_comments
Definition: descriptor.h:156
Definition: descriptor.pb.h:2117
#define PROTOBUF_DEFINE_OPTIONS_ACCESSOR(CLASS, TYPE)
Definition: descriptor.h:1644
enum_type
Definition: descriptor_pb2.py:1573
struct DescriptorPool DescriptorPool
Definition: protobuf.h:22
OneofDescriptorProto
Definition: descriptor_pb2.py:1667
Definition: protobuf.h:64
ErrorCollector()
Definition: descriptor.h:1440
string element_name
Definition: descriptor.cc:2757
uint32_t uint32
Definition: port.h:135
EGLImageKHR EGLint * name
Definition: eglext.h:851
Definition: descriptor.cc:2764
Definition: __init__.py:1
uint64_t uint64
Definition: port.h:136
GLint GLenum GLsizei GLsizei GLsizei depth
Definition: gl2ext.h:572
Definition: descriptor.pb.h:2788
Definition: descriptor.pb.h:2463
Definition: descriptor.cc:564
const FieldDescriptor * field(int index) const
Definition: descriptor.h:1905
MethodDescriptorProto
Definition: descriptor_pb2.py:1695
bool default_value_bool_
Definition: descriptor.h:712
double default_value_double_
Definition: descriptor.h:711
Definition: descriptor.pb.h:1554
WireFormatLite::FieldType field_type(FieldType type)
Definition: extension_set_heavy.cc:133
Definition: type.pb.h:133
EGLenum type
Definition: eglext.h:63
Definition: scoped_ptr.h:48
Definition: document.h:393
Definition: descriptor.h:456
EnumValueOptions
Definition: descriptor_pb2.py:1730
Definition: descriptor.pb.h:1673
MethodOptions
Definition: descriptor_pb2.py:1744
Definition: descriptor.h:1452
EnumDescriptorProto
Definition: descriptor_pb2.py:1674
static const char * TypeName(Type type)
Definition: descriptor.h:1870
int end_column
Definition: descriptor.h:140
Definition: descriptor.h:1355
for i
Definition: complexityMeasures.m:24
ErrorLocation
Definition: descriptor.h:1446
Definition: type.pb.h:112
struct EnumDescriptor EnumDescriptor
Definition: protobuf.h:26
const string & reserved_name(int index) const
int64_t int64
Definition: port.h:131
#define false
Definition: float-mm.c:5
bool elide_oneof_body
Definition: descriptor.h:159
FieldDescriptor::CppType cpp_type(FieldType type)
Definition: extension_set_heavy.cc:128
const
Definition: upload.py:398
#define NULL
Definition: common_types.h:41
Syntax syntax() const
Definition: descriptor.h:1899
containing_type
Definition: descriptor_pb2.py:1563
Definition: descriptor_unittest.cc:495
Definition: descriptor.pb.h:275
int start
Definition: descriptor.h:288
string trailing_comments
Definition: descriptor.h:145
#define LIBPROTOBUF_EXPORT
Definition: port.h:97
Definition: descriptor.h:1447
const EnumValueDescriptor * default_value_enum_
Definition: descriptor.h:714
UninterpretedOption
Definition: descriptor_pb2.py:1751
Definition: descriptor.pb.h:933
Definition: gflags_completions.h:115
Definition: descriptor.h:919
const Descriptor * FindMessageTypeByName(PyDescriptorPool *self, const string &name)
PyObject * FindFileContainingSymbol(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:308
GPBFileSyntax syntax_
Definition: GPBDescriptor.m:250
MessageOptions
Definition: descriptor_pb2.py:1709
vector< string > leading_detached_comments
Definition: descriptor.h:146
int end_line
Definition: descriptor.h:138
DescriptorPool pool_
Definition: parser_unittest.cc:179
extension
Definition: descriptor.h:1666
ServiceDescriptorProto
Definition: descriptor_pb2.py:1688
EnumValueDescriptorProto
Definition: descriptor_pb2.py:1681
Definition: descriptor.pb.h:1225
static bool IsTypePackable(Type field_type)
Definition: descriptor.h:1878
GLuint GLsizei const GLchar * message
Definition: gl2ext.h:137
Definition: descriptor.h:736
PyObject * FindFileByName(PyDescriptorPool *self, PyObject *arg)
Definition: descriptor_pool.cc:221
Definition: descriptor_database.h:65
struct OneofDescriptor OneofDescriptor
Definition: protobuf.h:25
Definition: descriptor.pb.h:716
Definition: descriptor.h:327
const string * default_value_string_
Definition: descriptor.h:715
bool elide_group_body
Definition: descriptor.h:158
const FileDescriptor * public_dependency(int index) const
Definition: descriptor.h:1889
static CppType TypeToCppType(Type type)
EnumOptions
Definition: descriptor_pb2.py:1723
Definition: protobuf.h:70
message_type
Definition: descriptor_pb2.py:1556
Definition: protobuf.h:95
Definition: descriptor.h:1448
Definition: descriptor.h:1454