From 30650d81d9baa446dbc8deb784ba53794cafda5b Mon Sep 17 00:00:00 2001 From: Thomas Van Lenten Date: Fri, 1 May 2015 08:57:16 -0400 Subject: Alpha 1 drop of Google's Objective C plugin and runtime support for protobufs. --- objectivec/google/protobuf/Descriptor.pbobjc.h | 1046 +++++++++++ objectivec/google/protobuf/Descriptor.pbobjc.m | 2205 ++++++++++++++++++++++++ objectivec/google/protobuf/Duration.pbobjc.h | 83 + objectivec/google/protobuf/Duration.pbobjc.m | 85 + objectivec/google/protobuf/Timestamp.pbobjc.h | 94 + objectivec/google/protobuf/Timestamp.pbobjc.m | 85 + 6 files changed, 3598 insertions(+) create mode 100644 objectivec/google/protobuf/Descriptor.pbobjc.h create mode 100644 objectivec/google/protobuf/Descriptor.pbobjc.m create mode 100644 objectivec/google/protobuf/Duration.pbobjc.h create mode 100644 objectivec/google/protobuf/Duration.pbobjc.m create mode 100644 objectivec/google/protobuf/Timestamp.pbobjc.h create mode 100644 objectivec/google/protobuf/Timestamp.pbobjc.m (limited to 'objectivec/google') diff --git a/objectivec/google/protobuf/Descriptor.pbobjc.h b/objectivec/google/protobuf/Descriptor.pbobjc.h new file mode 100644 index 00000000..7b11d899 --- /dev/null +++ b/objectivec/google/protobuf/Descriptor.pbobjc.h @@ -0,0 +1,1046 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/descriptor.proto + +#import "GPBProtocolBuffers.h" + +#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000 +#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources. +#endif + +CF_EXTERN_C_BEGIN + +@class GPBDescriptorProto; +@class GPBDescriptorProto_ExtensionRange; +@class GPBEnumDescriptorProto; +@class GPBEnumOptions; +@class GPBEnumValueDescriptorProto; +@class GPBEnumValueOptions; +@class GPBFieldDescriptorProto; +@class GPBFieldOptions; +@class GPBFileDescriptorProto; +@class GPBFileDescriptorSet; +@class GPBFileOptions; +@class GPBMessageOptions; +@class GPBMethodDescriptorProto; +@class GPBMethodOptions; +@class GPBOneofDescriptorProto; +@class GPBServiceDescriptorProto; +@class GPBServiceOptions; +@class GPBSourceCodeInfo; +@class GPBSourceCodeInfo_Location; +@class GPBUninterpretedOption; +@class GPBUninterpretedOption_NamePart; + +#pragma mark - Enum GPBFieldDescriptorProto_Type + +typedef GPB_ENUM(GPBFieldDescriptorProto_Type) { + // 0 is reserved for errors. + // Order is weird for historical reasons. + GPBFieldDescriptorProto_Type_TypeDouble = 1, + GPBFieldDescriptorProto_Type_TypeFloat = 2, + + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + GPBFieldDescriptorProto_Type_TypeInt64 = 3, + GPBFieldDescriptorProto_Type_TypeUint64 = 4, + + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + GPBFieldDescriptorProto_Type_TypeInt32 = 5, + GPBFieldDescriptorProto_Type_TypeFixed64 = 6, + GPBFieldDescriptorProto_Type_TypeFixed32 = 7, + GPBFieldDescriptorProto_Type_TypeBool = 8, + GPBFieldDescriptorProto_Type_TypeString = 9, + + // Tag-delimited aggregate. + GPBFieldDescriptorProto_Type_TypeGroup = 10, + + // Length-delimited aggregate. + GPBFieldDescriptorProto_Type_TypeMessage = 11, + + // New in version 2. + GPBFieldDescriptorProto_Type_TypeBytes = 12, + GPBFieldDescriptorProto_Type_TypeUint32 = 13, + GPBFieldDescriptorProto_Type_TypeEnum = 14, + GPBFieldDescriptorProto_Type_TypeSfixed32 = 15, + GPBFieldDescriptorProto_Type_TypeSfixed64 = 16, + + // Uses ZigZag encoding. + GPBFieldDescriptorProto_Type_TypeSint32 = 17, + + // Uses ZigZag encoding. + GPBFieldDescriptorProto_Type_TypeSint64 = 18, +}; + +GPBEnumDescriptor *GPBFieldDescriptorProto_Type_EnumDescriptor(void); + +BOOL GPBFieldDescriptorProto_Type_IsValidValue(int32_t value); + +#pragma mark - Enum GPBFieldDescriptorProto_Label + +typedef GPB_ENUM(GPBFieldDescriptorProto_Label) { + // 0 is reserved for errors + GPBFieldDescriptorProto_Label_LabelOptional = 1, + GPBFieldDescriptorProto_Label_LabelRequired = 2, + + // TODO(sanjay): Should we add LABEL_MAP? + GPBFieldDescriptorProto_Label_LabelRepeated = 3, +}; + +GPBEnumDescriptor *GPBFieldDescriptorProto_Label_EnumDescriptor(void); + +BOOL GPBFieldDescriptorProto_Label_IsValidValue(int32_t value); + +#pragma mark - Enum GPBFileOptions_OptimizeMode + +// Generated classes can be optimized for speed or code size. +typedef GPB_ENUM(GPBFileOptions_OptimizeMode) { + // Generate complete code for parsing, serialization, + GPBFileOptions_OptimizeMode_Speed = 1, + + // etc. + GPBFileOptions_OptimizeMode_CodeSize = 2, + + // Generate code using MessageLite and the lite runtime. + GPBFileOptions_OptimizeMode_LiteRuntime = 3, +}; + +GPBEnumDescriptor *GPBFileOptions_OptimizeMode_EnumDescriptor(void); + +BOOL GPBFileOptions_OptimizeMode_IsValidValue(int32_t value); + +#pragma mark - Enum GPBFieldOptions_CType + +typedef GPB_ENUM(GPBFieldOptions_CType) { + // Default mode. + GPBFieldOptions_CType_String = 0, + GPBFieldOptions_CType_Cord = 1, + GPBFieldOptions_CType_StringPiece = 2, +}; + +GPBEnumDescriptor *GPBFieldOptions_CType_EnumDescriptor(void); + +BOOL GPBFieldOptions_CType_IsValidValue(int32_t value); + + +#pragma mark - GPBDescriptorRoot + +@interface GPBDescriptorRoot : GPBRootObject +@end + +#pragma mark - GPBFileDescriptorSet + +typedef GPB_ENUM(GPBFileDescriptorSet_FieldNumber) { + GPBFileDescriptorSet_FieldNumber_FileArray = 1, +}; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +@interface GPBFileDescriptorSet : GPBMessage + +// |fileArray| contains |GPBFileDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *fileArray; + +@end + +#pragma mark - GPBFileDescriptorProto + +typedef GPB_ENUM(GPBFileDescriptorProto_FieldNumber) { + GPBFileDescriptorProto_FieldNumber_Name = 1, + GPBFileDescriptorProto_FieldNumber_Package = 2, + GPBFileDescriptorProto_FieldNumber_DependencyArray = 3, + GPBFileDescriptorProto_FieldNumber_MessageTypeArray = 4, + GPBFileDescriptorProto_FieldNumber_EnumTypeArray = 5, + GPBFileDescriptorProto_FieldNumber_ServiceArray = 6, + GPBFileDescriptorProto_FieldNumber_ExtensionArray = 7, + GPBFileDescriptorProto_FieldNumber_Options = 8, + GPBFileDescriptorProto_FieldNumber_SourceCodeInfo = 9, + GPBFileDescriptorProto_FieldNumber_PublicDependencyArray = 10, + GPBFileDescriptorProto_FieldNumber_WeakDependencyArray = 11, + GPBFileDescriptorProto_FieldNumber_Syntax = 12, +}; + +// Describes a complete .proto file. +@interface GPBFileDescriptorProto : GPBMessage + +// file name, relative to root of source tree +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +// e.g. "foo", "foo.bar", etc. +@property(nonatomic, readwrite) BOOL hasPackage; +@property(nonatomic, readwrite, copy) NSString *package; + +// Names of files imported by this file. +// |dependencyArray| contains |NSString| +@property(nonatomic, readwrite, strong) NSMutableArray *dependencyArray; + +// Indexes of the public imported files in the dependency list above. +@property(nonatomic, readwrite, strong) GPBInt32Array *publicDependencyArray; + +// Indexes of the weak imported files in the dependency list. +// For Google-internal migration only. Do not use. +@property(nonatomic, readwrite, strong) GPBInt32Array *weakDependencyArray; + +// All top-level definitions in this file. +// |messageTypeArray| contains |GPBDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *messageTypeArray; + +// |enumTypeArray| contains |GPBEnumDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *enumTypeArray; + +// |serviceArray| contains |GPBServiceDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *serviceArray; + +// |extensionArray| contains |GPBFieldDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *extensionArray; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBFileOptions *options; + +// This field contains optional information about the original source code. +// You may safely remove this entire field without harming runtime +// functionality of the descriptors -- the information is needed only by +// development tools. +@property(nonatomic, readwrite) BOOL hasSourceCodeInfo; +@property(nonatomic, readwrite, strong) GPBSourceCodeInfo *sourceCodeInfo; + +// The syntax of the proto file. +// The supported values are "proto2" and "proto3". +@property(nonatomic, readwrite) BOOL hasSyntax; +@property(nonatomic, readwrite, copy) NSString *syntax; + +@end + +#pragma mark - GPBDescriptorProto + +typedef GPB_ENUM(GPBDescriptorProto_FieldNumber) { + GPBDescriptorProto_FieldNumber_Name = 1, + GPBDescriptorProto_FieldNumber_FieldArray = 2, + GPBDescriptorProto_FieldNumber_NestedTypeArray = 3, + GPBDescriptorProto_FieldNumber_EnumTypeArray = 4, + GPBDescriptorProto_FieldNumber_ExtensionRangeArray = 5, + GPBDescriptorProto_FieldNumber_ExtensionArray = 6, + GPBDescriptorProto_FieldNumber_Options = 7, + GPBDescriptorProto_FieldNumber_OneofDeclArray = 8, +}; + +// Describes a message type. +@interface GPBDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +// |fieldArray| contains |GPBFieldDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *fieldArray; + +// |extensionArray| contains |GPBFieldDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *extensionArray; + +// |nestedTypeArray| contains |GPBDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *nestedTypeArray; + +// |enumTypeArray| contains |GPBEnumDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *enumTypeArray; + +// |extensionRangeArray| contains |GPBDescriptorProto_ExtensionRange| +@property(nonatomic, readwrite, strong) NSMutableArray *extensionRangeArray; + +// |oneofDeclArray| contains |GPBOneofDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *oneofDeclArray; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBMessageOptions *options; + +@end + +#pragma mark - GPBDescriptorProto_ExtensionRange + +typedef GPB_ENUM(GPBDescriptorProto_ExtensionRange_FieldNumber) { + GPBDescriptorProto_ExtensionRange_FieldNumber_Start = 1, + GPBDescriptorProto_ExtensionRange_FieldNumber_End = 2, +}; + +@interface GPBDescriptorProto_ExtensionRange : GPBMessage + +@property(nonatomic, readwrite) BOOL hasStart; +@property(nonatomic, readwrite) int32_t start; + +@property(nonatomic, readwrite) BOOL hasEnd; +@property(nonatomic, readwrite) int32_t end; + +@end + +#pragma mark - GPBFieldDescriptorProto + +typedef GPB_ENUM(GPBFieldDescriptorProto_FieldNumber) { + GPBFieldDescriptorProto_FieldNumber_Name = 1, + GPBFieldDescriptorProto_FieldNumber_Extendee = 2, + GPBFieldDescriptorProto_FieldNumber_Number = 3, + GPBFieldDescriptorProto_FieldNumber_Label = 4, + GPBFieldDescriptorProto_FieldNumber_Type = 5, + GPBFieldDescriptorProto_FieldNumber_TypeName = 6, + GPBFieldDescriptorProto_FieldNumber_DefaultValue = 7, + GPBFieldDescriptorProto_FieldNumber_Options = 8, + GPBFieldDescriptorProto_FieldNumber_OneofIndex = 9, +}; + +// Describes a field within a message. +@interface GPBFieldDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +@property(nonatomic, readwrite) BOOL hasNumber; +@property(nonatomic, readwrite) int32_t number; + +@property(nonatomic, readwrite) BOOL hasLabel; +@property(nonatomic, readwrite) GPBFieldDescriptorProto_Label label; + +// If type_name is set, this need not be set. If both this and type_name +// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. +@property(nonatomic, readwrite) BOOL hasType; +@property(nonatomic, readwrite) GPBFieldDescriptorProto_Type type; + +// For message and enum types, this is the name of the type. If the name +// starts with a '.', it is fully-qualified. Otherwise, C++-like scoping +// rules are used to find the type (i.e. first the nested types within this +// message are searched, then within the parent, on up to the root +// namespace). +@property(nonatomic, readwrite) BOOL hasTypeName; +@property(nonatomic, readwrite, copy) NSString *typeName; + +// For extensions, this is the name of the type being extended. It is +// resolved in the same manner as type_name. +@property(nonatomic, readwrite) BOOL hasExtendee; +@property(nonatomic, readwrite, copy) NSString *extendee; + +// For numeric types, contains the original text representation of the value. +// For booleans, "true" or "false". +// For strings, contains the default text contents (not escaped in any way). +// For bytes, contains the C escaped value. All bytes >= 128 are escaped. +// TODO(kenton): Base-64 encode? +@property(nonatomic, readwrite) BOOL hasDefaultValue; +@property(nonatomic, readwrite, copy) NSString *defaultValue; + +// If set, gives the index of a oneof in the containing type's oneof_decl +// list. This field is a member of that oneof. +@property(nonatomic, readwrite) BOOL hasOneofIndex; +@property(nonatomic, readwrite) int32_t oneofIndex; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBFieldOptions *options; + +@end + +#pragma mark - GPBOneofDescriptorProto + +typedef GPB_ENUM(GPBOneofDescriptorProto_FieldNumber) { + GPBOneofDescriptorProto_FieldNumber_Name = 1, +}; + +// Describes a oneof. +@interface GPBOneofDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +@end + +#pragma mark - GPBEnumDescriptorProto + +typedef GPB_ENUM(GPBEnumDescriptorProto_FieldNumber) { + GPBEnumDescriptorProto_FieldNumber_Name = 1, + GPBEnumDescriptorProto_FieldNumber_ValueArray = 2, + GPBEnumDescriptorProto_FieldNumber_Options = 3, +}; + +// Describes an enum type. +@interface GPBEnumDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +// |valueArray| contains |GPBEnumValueDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *valueArray; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBEnumOptions *options; + +@end + +#pragma mark - GPBEnumValueDescriptorProto + +typedef GPB_ENUM(GPBEnumValueDescriptorProto_FieldNumber) { + GPBEnumValueDescriptorProto_FieldNumber_Name = 1, + GPBEnumValueDescriptorProto_FieldNumber_Number = 2, + GPBEnumValueDescriptorProto_FieldNumber_Options = 3, +}; + +// Describes a value within an enum. +@interface GPBEnumValueDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +@property(nonatomic, readwrite) BOOL hasNumber; +@property(nonatomic, readwrite) int32_t number; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBEnumValueOptions *options; + +@end + +#pragma mark - GPBServiceDescriptorProto + +typedef GPB_ENUM(GPBServiceDescriptorProto_FieldNumber) { + GPBServiceDescriptorProto_FieldNumber_Name = 1, + GPBServiceDescriptorProto_FieldNumber_MethodArray = 2, + GPBServiceDescriptorProto_FieldNumber_Options = 3, +}; + +// Describes a service. +@interface GPBServiceDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +// |methodArray| contains |GPBMethodDescriptorProto| +@property(nonatomic, readwrite, strong) NSMutableArray *methodArray; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBServiceOptions *options; + +@end + +#pragma mark - GPBMethodDescriptorProto + +typedef GPB_ENUM(GPBMethodDescriptorProto_FieldNumber) { + GPBMethodDescriptorProto_FieldNumber_Name = 1, + GPBMethodDescriptorProto_FieldNumber_InputType = 2, + GPBMethodDescriptorProto_FieldNumber_OutputType = 3, + GPBMethodDescriptorProto_FieldNumber_Options = 4, + GPBMethodDescriptorProto_FieldNumber_ClientStreaming = 5, + GPBMethodDescriptorProto_FieldNumber_ServerStreaming = 6, +}; + +// Describes a method of a service. +@interface GPBMethodDescriptorProto : GPBMessage + +@property(nonatomic, readwrite) BOOL hasName; +@property(nonatomic, readwrite, copy) NSString *name; + +// Input and output type names. These are resolved in the same way as +// FieldDescriptorProto.type_name, but must refer to a message type. +@property(nonatomic, readwrite) BOOL hasInputType; +@property(nonatomic, readwrite, copy) NSString *inputType; + +@property(nonatomic, readwrite) BOOL hasOutputType; +@property(nonatomic, readwrite, copy) NSString *outputType; + +@property(nonatomic, readwrite) BOOL hasOptions; +@property(nonatomic, readwrite, strong) GPBMethodOptions *options; + +// Identifies if client streams multiple client messages +@property(nonatomic, readwrite) BOOL hasClientStreaming; +@property(nonatomic, readwrite) BOOL clientStreaming; + +// Identifies if server streams multiple server messages +@property(nonatomic, readwrite) BOOL hasServerStreaming; +@property(nonatomic, readwrite) BOOL serverStreaming; + +@end + +#pragma mark - GPBFileOptions + +typedef GPB_ENUM(GPBFileOptions_FieldNumber) { + GPBFileOptions_FieldNumber_JavaPackage = 1, + GPBFileOptions_FieldNumber_JavaOuterClassname = 8, + GPBFileOptions_FieldNumber_OptimizeFor = 9, + GPBFileOptions_FieldNumber_JavaMultipleFiles = 10, + GPBFileOptions_FieldNumber_GoPackage = 11, + GPBFileOptions_FieldNumber_CcGenericServices = 16, + GPBFileOptions_FieldNumber_JavaGenericServices = 17, + GPBFileOptions_FieldNumber_PyGenericServices = 18, + GPBFileOptions_FieldNumber_JavaGenerateEqualsAndHash = 20, + GPBFileOptions_FieldNumber_Deprecated = 23, + GPBFileOptions_FieldNumber_JavaStringCheckUtf8 = 27, + GPBFileOptions_FieldNumber_CcEnableArenas = 31, + GPBFileOptions_FieldNumber_ObjcClassPrefix = 36, + GPBFileOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBFileOptions : GPBMessage + +// Sets the Java package where classes generated from this .proto will be +// placed. By default, the proto package is used, but this is often +// inappropriate because proto packages do not normally start with backwards +// domain names. +@property(nonatomic, readwrite) BOOL hasJavaPackage; +@property(nonatomic, readwrite, copy) NSString *javaPackage; + +// If set, all the classes from the .proto file are wrapped in a single +// outer class with the given name. This applies to both Proto1 +// (equivalent to the old "--one_java_file" option) and Proto2 (where +// a .proto always translates to a single class, but you may want to +// explicitly choose the class name). +@property(nonatomic, readwrite) BOOL hasJavaOuterClassname; +@property(nonatomic, readwrite, copy) NSString *javaOuterClassname; + +// If set true, then the Java code generator will generate a separate .java +// file for each top-level message, enum, and service defined in the .proto +// file. Thus, these types will *not* be nested inside the outer class +// named by java_outer_classname. However, the outer class will still be +// generated to contain the file's getDescriptor() method as well as any +// top-level extensions defined in the file. +@property(nonatomic, readwrite) BOOL hasJavaMultipleFiles; +@property(nonatomic, readwrite) BOOL javaMultipleFiles; + +// If set true, then the Java code generator will generate equals() and +// hashCode() methods for all messages defined in the .proto file. +// - In the full runtime, this is purely a speed optimization, as the +// AbstractMessage base class includes reflection-based implementations of +// these methods. +//- In the lite runtime, setting this option changes the semantics of +// equals() and hashCode() to more closely match those of the full runtime; +// the generated methods compute their results based on field values rather +// than object identity. (Implementations should not assume that hashcodes +// will be consistent across runtimes or versions of the protocol compiler.) +@property(nonatomic, readwrite) BOOL hasJavaGenerateEqualsAndHash; +@property(nonatomic, readwrite) BOOL javaGenerateEqualsAndHash; + +// If set true, then the Java2 code generator will generate code that +// throws an exception whenever an attempt is made to assign a non-UTF-8 +// byte sequence to a string field. +// Message reflection will do the same. +// However, an extension field still accepts non-UTF-8 byte sequences. +// This option has no effect on when used with the lite runtime. +@property(nonatomic, readwrite) BOOL hasJavaStringCheckUtf8; +@property(nonatomic, readwrite) BOOL javaStringCheckUtf8; + +@property(nonatomic, readwrite) BOOL hasOptimizeFor; +@property(nonatomic, readwrite) GPBFileOptions_OptimizeMode optimizeFor; + +// Sets the Go package where structs generated from this .proto will be +// placed. If omitted, the Go package will be derived from the following: +// - The basename of the package import path, if provided. +// - Otherwise, the package statement in the .proto file, if present. +// - Otherwise, the basename of the .proto file, without extension. +@property(nonatomic, readwrite) BOOL hasGoPackage; +@property(nonatomic, readwrite, copy) NSString *goPackage; + +// Should generic services be generated in each language? "Generic" services +// are not specific to any particular RPC system. They are generated by the +// main code generators in each language (without additional plugins). +// Generic services were the only kind of service generation supported by +// early versions of google.protobuf. +// +// Generic services are now considered deprecated in favor of using plugins +// that generate code specific to your particular RPC system. Therefore, +// these default to false. Old code which depends on generic services should +// explicitly set them to true. +@property(nonatomic, readwrite) BOOL hasCcGenericServices; +@property(nonatomic, readwrite) BOOL ccGenericServices; + +@property(nonatomic, readwrite) BOOL hasJavaGenericServices; +@property(nonatomic, readwrite) BOOL javaGenericServices; + +@property(nonatomic, readwrite) BOOL hasPyGenericServices; +@property(nonatomic, readwrite) BOOL pyGenericServices; + +// Is this file deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for everything in the file, or it will be completely ignored; in the very +// least, this is a formalization for deprecating files. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// Enables the use of arenas for the proto messages in this file. This applies +// only to generated classes for C++. +@property(nonatomic, readwrite) BOOL hasCcEnableArenas; +@property(nonatomic, readwrite) BOOL ccEnableArenas; + +// Sets the objective c class prefix which is prepended to all objective c +// generated classes from this .proto. There is no default. +@property(nonatomic, readwrite) BOOL hasObjcClassPrefix; +@property(nonatomic, readwrite, copy) NSString *objcClassPrefix; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBMessageOptions + +typedef GPB_ENUM(GPBMessageOptions_FieldNumber) { + GPBMessageOptions_FieldNumber_MessageSetWireFormat = 1, + GPBMessageOptions_FieldNumber_NoStandardDescriptorAccessor = 2, + GPBMessageOptions_FieldNumber_Deprecated = 3, + GPBMessageOptions_FieldNumber_MapEntry = 7, + GPBMessageOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBMessageOptions : GPBMessage + +// Set true to use the old proto1 MessageSet wire format for extensions. +// This is provided for backwards-compatibility with the MessageSet wire +// format. You should not use this for any other reason: It's less +// efficient, has fewer features, and is more complicated. +// +// The message must be defined exactly as follows: +// message Foo { +// option message_set_wire_format = true; +// extensions 4 to max; +// } +// Note that the message cannot have any defined fields; MessageSets only +// have extensions. +// +// All extensions of your type must be singular messages; e.g. they cannot +// be int32s, enums, or repeated messages. +// +// Because this is an option, the above two restrictions are not enforced by +// the protocol compiler. +@property(nonatomic, readwrite) BOOL hasMessageSetWireFormat; +@property(nonatomic, readwrite) BOOL messageSetWireFormat; + +// Disables the generation of the standard "descriptor()" accessor, which can +// conflict with a field of the same name. This is meant to make migration +// from proto1 easier; new code should avoid fields named "descriptor". +@property(nonatomic, readwrite) BOOL hasNoStandardDescriptorAccessor; +@property(nonatomic, readwrite) BOOL noStandardDescriptorAccessor; + +// Is this message deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for the message, or it will be completely ignored; in the very least, +// this is a formalization for deprecating messages. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// Whether the message is an automatically generated map entry type for the +// maps field. +// +// For maps fields: +// map map_field = 1; +// The parsed descriptor looks like: +// message MapFieldEntry { +// option map_entry = true; +// optional KeyType key = 1; +// optional ValueType value = 2; +// } +// repeated MapFieldEntry map_field = 1; +// +// Implementations may choose not to generate the map_entry=true message, but +// use a native map in the target language to hold the keys and values. +// The reflection APIs in such implementions still need to work as +// if the field is a repeated message field. +// +// NOTE: Do not set the option in .proto files. Always use the maps syntax +// instead. The option should only be implicitly set by the proto compiler +// parser. +@property(nonatomic, readwrite) BOOL hasMapEntry; +@property(nonatomic, readwrite) BOOL mapEntry; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBFieldOptions + +typedef GPB_ENUM(GPBFieldOptions_FieldNumber) { + GPBFieldOptions_FieldNumber_Ctype = 1, + GPBFieldOptions_FieldNumber_Packed = 2, + GPBFieldOptions_FieldNumber_Deprecated = 3, + GPBFieldOptions_FieldNumber_Lazy = 5, + GPBFieldOptions_FieldNumber_Weak = 10, + GPBFieldOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBFieldOptions : GPBMessage + +// The ctype option instructs the C++ code generator to use a different +// representation of the field than it normally would. See the specific +// options below. This option is not yet implemented in the open source +// release -- sorry, we'll try to include it in a future version! +@property(nonatomic, readwrite) BOOL hasCtype; +@property(nonatomic, readwrite) GPBFieldOptions_CType ctype; + +// The packed option can be enabled for repeated primitive fields to enable +// a more efficient representation on the wire. Rather than repeatedly +// writing the tag and type for each element, the entire array is encoded as +// a single length-delimited blob. +@property(nonatomic, readwrite) BOOL hasPacked; +@property(nonatomic, readwrite) BOOL packed; + +// Should this field be parsed lazily? Lazy applies only to message-type +// fields. It means that when the outer message is initially parsed, the +// inner message's contents will not be parsed but instead stored in encoded +// form. The inner message will actually be parsed when it is first accessed. +// +// This is only a hint. Implementations are free to choose whether to use +// eager or lazy parsing regardless of the value of this option. However, +// setting this option true suggests that the protocol author believes that +// using lazy parsing on this field is worth the additional bookkeeping +// overhead typically needed to implement it. +// +// This option does not affect the public interface of any generated code; +// all method signatures remain the same. Furthermore, thread-safety of the +// interface is not affected by this option; const methods remain safe to +// call from multiple threads concurrently, while non-const methods continue +// to require exclusive access. +// +// +// Note that implementations may choose not to check required fields within +// a lazy sub-message. That is, calling IsInitialized() on the outher message +// may return true even if the inner message has missing required fields. +// This is necessary because otherwise the inner message would have to be +// parsed in order to perform the check, defeating the purpose of lazy +// parsing. An implementation which chooses not to check required fields +// must be consistent about it. That is, for any particular sub-message, the +// implementation must either *always* check its required fields, or *never* +// check its required fields, regardless of whether or not the message has +// been parsed. +@property(nonatomic, readwrite) BOOL hasLazy; +@property(nonatomic, readwrite) BOOL lazy; + +// Is this field deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for accessors, or it will be completely ignored; in the very least, this +// is a formalization for deprecating fields. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// For Google-internal migration only. Do not use. +@property(nonatomic, readwrite) BOOL hasWeak; +@property(nonatomic, readwrite) BOOL weak; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBEnumOptions + +typedef GPB_ENUM(GPBEnumOptions_FieldNumber) { + GPBEnumOptions_FieldNumber_AllowAlias = 2, + GPBEnumOptions_FieldNumber_Deprecated = 3, + GPBEnumOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBEnumOptions : GPBMessage + +// Set this option to true to allow mapping different tag names to the same +// value. +@property(nonatomic, readwrite) BOOL hasAllowAlias; +@property(nonatomic, readwrite) BOOL allowAlias; + +// Is this enum deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for the enum, or it will be completely ignored; in the very least, this +// is a formalization for deprecating enums. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBEnumValueOptions + +typedef GPB_ENUM(GPBEnumValueOptions_FieldNumber) { + GPBEnumValueOptions_FieldNumber_Deprecated = 1, + GPBEnumValueOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBEnumValueOptions : GPBMessage + +// Is this enum value deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for the enum value, or it will be completely ignored; in the very least, +// this is a formalization for deprecating enum values. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBServiceOptions + +typedef GPB_ENUM(GPBServiceOptions_FieldNumber) { + GPBServiceOptions_FieldNumber_Deprecated = 33, + GPBServiceOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBServiceOptions : GPBMessage + +// Is this service deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for the service, or it will be completely ignored; in the very least, +// this is a formalization for deprecating services. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBMethodOptions + +typedef GPB_ENUM(GPBMethodOptions_FieldNumber) { + GPBMethodOptions_FieldNumber_Deprecated = 33, + GPBMethodOptions_FieldNumber_UninterpretedOptionArray = 999, +}; + +@interface GPBMethodOptions : GPBMessage + +// Is this method deprecated? +// Depending on the target platform, this can emit Deprecated annotations +// for the method, or it will be completely ignored; in the very least, +// this is a formalization for deprecating methods. +@property(nonatomic, readwrite) BOOL hasDeprecated; +@property(nonatomic, readwrite) BOOL deprecated; + +// The parser stores options it doesn't recognize here. See above. +// |uninterpretedOptionArray| contains |GPBUninterpretedOption| +@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray; + +@end + +#pragma mark - GPBUninterpretedOption + +typedef GPB_ENUM(GPBUninterpretedOption_FieldNumber) { + GPBUninterpretedOption_FieldNumber_NameArray = 2, + GPBUninterpretedOption_FieldNumber_IdentifierValue = 3, + GPBUninterpretedOption_FieldNumber_PositiveIntValue = 4, + GPBUninterpretedOption_FieldNumber_NegativeIntValue = 5, + GPBUninterpretedOption_FieldNumber_DoubleValue = 6, + GPBUninterpretedOption_FieldNumber_StringValue = 7, + GPBUninterpretedOption_FieldNumber_AggregateValue = 8, +}; + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +@interface GPBUninterpretedOption : GPBMessage + +// |nameArray| contains |GPBUninterpretedOption_NamePart| +@property(nonatomic, readwrite, strong) NSMutableArray *nameArray; + +// The value of the uninterpreted option, in whatever type the tokenizer +// identified it as during parsing. Exactly one of these should be set. +@property(nonatomic, readwrite) BOOL hasIdentifierValue; +@property(nonatomic, readwrite, copy) NSString *identifierValue; + +@property(nonatomic, readwrite) BOOL hasPositiveIntValue; +@property(nonatomic, readwrite) uint64_t positiveIntValue; + +@property(nonatomic, readwrite) BOOL hasNegativeIntValue; +@property(nonatomic, readwrite) int64_t negativeIntValue; + +@property(nonatomic, readwrite) BOOL hasDoubleValue; +@property(nonatomic, readwrite) double doubleValue; + +@property(nonatomic, readwrite) BOOL hasStringValue; +@property(nonatomic, readwrite, copy) NSData *stringValue; + +@property(nonatomic, readwrite) BOOL hasAggregateValue; +@property(nonatomic, readwrite, copy) NSString *aggregateValue; + +@end + +#pragma mark - GPBUninterpretedOption_NamePart + +typedef GPB_ENUM(GPBUninterpretedOption_NamePart_FieldNumber) { + GPBUninterpretedOption_NamePart_FieldNumber_NamePart = 1, + GPBUninterpretedOption_NamePart_FieldNumber_IsExtension = 2, +}; + +// The name of the uninterpreted option. Each string represents a segment in +// a dot-separated name. is_extension is true iff a segment represents an +// extension (denoted with parentheses in options specs in .proto files). +// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents +// "foo.(bar.baz).qux". +@interface GPBUninterpretedOption_NamePart : GPBMessage + +@property(nonatomic, readwrite) BOOL hasNamePart; +@property(nonatomic, readwrite, copy) NSString *namePart; + +@property(nonatomic, readwrite) BOOL hasIsExtension; +@property(nonatomic, readwrite) BOOL isExtension; + +@end + +#pragma mark - GPBSourceCodeInfo + +typedef GPB_ENUM(GPBSourceCodeInfo_FieldNumber) { + GPBSourceCodeInfo_FieldNumber_LocationArray = 1, +}; + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +@interface GPBSourceCodeInfo : GPBMessage + +// A Location identifies a piece of source code in a .proto file which +// corresponds to a particular definition. This information is intended +// to be useful to IDEs, code indexers, documentation generators, and similar +// tools. +// +// For example, say we have a file like: +// message Foo { +// optional string foo = 1; +// } +// Let's look at just the field definition: +// optional string foo = 1; +// ^ ^^ ^^ ^ ^^^ +// a bc de f ghi +// We have the following locations: +// span path represents +// [a,i) [ 4, 0, 2, 0 ] The whole field definition. +// [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). +// [c,d) [ 4, 0, 2, 0, 5 ] The type (string). +// [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). +// [g,h) [ 4, 0, 2, 0, 3 ] The number (1). +// +// Notes: +// - A location may refer to a repeated field itself (i.e. not to any +// particular index within it). This is used whenever a set of elements are +// logically enclosed in a single code segment. For example, an entire +// extend block (possibly containing multiple extension definitions) will +// have an outer location whose path refers to the "extensions" repeated +// field without an index. +// - Multiple locations may have the same path. This happens when a single +// logical declaration is spread out across multiple places. The most +// obvious example is the "extend" block again -- there may be multiple +// extend blocks in the same scope, each of which will have the same path. +// - A location's span is not always a subset of its parent's span. For +// example, the "extendee" of an extension declaration appears at the +// beginning of the "extend" block and is shared by all extensions within +// the block. +// - Just because a location's span is a subset of some other location's span +// does not mean that it is a descendent. For example, a "group" defines +// both a type and a field in a single declaration. Thus, the locations +// corresponding to the type and field and their components will overlap. +// - Code which tries to interpret locations should probably be designed to +// ignore those that it doesn't understand, as more types of locations could +// be recorded in the future. +// |locationArray| contains |GPBSourceCodeInfo_Location| +@property(nonatomic, readwrite, strong) NSMutableArray *locationArray; + +@end + +#pragma mark - GPBSourceCodeInfo_Location + +typedef GPB_ENUM(GPBSourceCodeInfo_Location_FieldNumber) { + GPBSourceCodeInfo_Location_FieldNumber_PathArray = 1, + GPBSourceCodeInfo_Location_FieldNumber_SpanArray = 2, + GPBSourceCodeInfo_Location_FieldNumber_LeadingComments = 3, + GPBSourceCodeInfo_Location_FieldNumber_TrailingComments = 4, + GPBSourceCodeInfo_Location_FieldNumber_LeadingDetachedCommentsArray = 6, +}; + +@interface GPBSourceCodeInfo_Location : GPBMessage + +// Identifies which part of the FileDescriptorProto was defined at this +// location. +// +// Each element is a field number or an index. They form a path from +// the root FileDescriptorProto to the place where the definition. For +// example, this path: +// [ 4, 3, 2, 7, 1 ] +// refers to: +// file.message_type(3) // 4, 3 +// .field(7) // 2, 7 +// .name() // 1 +// This is because FileDescriptorProto.message_type has field number 4: +// repeated DescriptorProto message_type = 4; +// and DescriptorProto.field has field number 2: +// repeated FieldDescriptorProto field = 2; +// and FieldDescriptorProto.name has field number 1: +// optional string name = 1; +// +// Thus, the above path gives the location of a field name. If we removed +// the last element: +// [ 4, 3, 2, 7 ] +// this path refers to the whole field declaration (from the beginning +// of the label to the terminating semicolon). +@property(nonatomic, readwrite, strong) GPBInt32Array *pathArray; + +// Always has exactly three or four elements: start line, start column, +// end line (optional, otherwise assumed same as start line), end column. +// These are packed into a single field for efficiency. Note that line +// and column numbers are zero-based -- typically you will want to add +// 1 to each before displaying to a user. +@property(nonatomic, readwrite, strong) GPBInt32Array *spanArray; + +// If this SourceCodeInfo represents a complete declaration, these are any +// comments appearing before and after the declaration which appear to be +// attached to the declaration. +// +// A series of line comments appearing on consecutive lines, with no other +// tokens appearing on those lines, will be treated as a single comment. +// +// leading_detached_comments will keep paragraphs of comments that appear +// before (but not connected to) the current element. Each paragraph, +// separated by empty lines, will be one comment element in the repeated +// field. +// +// Only the comment content is provided; comment markers (e.g. //) are +// stripped out. For block comments, leading whitespace and an asterisk +// will be stripped from the beginning of each line other than the first. +// Newlines are included in the output. +// +// Examples: +// +// optional int32 foo = 1; // Comment attached to foo. +// // Comment attached to bar. +// optional int32 bar = 2; +// +// optional string baz = 3; +// // Comment attached to baz. +// // Another line attached to baz. +// +// // Comment attached to qux. +// // +// // Another line attached to qux. +// optional double qux = 4; +// +// // Detached comment for corge. This is not leading or trailing comments +// // to qux or corge because there are blank lines separating it from +// // both. +// +// // Detached comment for corge paragraph 2. +// +// optional string corge = 5; +// /* Block comment attached +// * to corge. Leading asterisks +// * will be removed. */ +// /* Block comment attached to +// * grault. */ +// optional int32 grault = 6; +// +// // ignored detached comments. +@property(nonatomic, readwrite) BOOL hasLeadingComments; +@property(nonatomic, readwrite, copy) NSString *leadingComments; + +@property(nonatomic, readwrite) BOOL hasTrailingComments; +@property(nonatomic, readwrite, copy) NSString *trailingComments; + +// |leadingDetachedCommentsArray| contains |NSString| +@property(nonatomic, readwrite, strong) NSMutableArray *leadingDetachedCommentsArray; + +@end + +CF_EXTERN_C_END diff --git a/objectivec/google/protobuf/Descriptor.pbobjc.m b/objectivec/google/protobuf/Descriptor.pbobjc.m new file mode 100644 index 00000000..b7d2e64f --- /dev/null +++ b/objectivec/google/protobuf/Descriptor.pbobjc.m @@ -0,0 +1,2205 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/descriptor.proto + +#import "GPBProtocolBuffers_RuntimeSupport.h" + +#import "google/protobuf/Descriptor.pbobjc.h" + +#pragma mark - GPBDescriptorRoot + +@implementation GPBDescriptorRoot + +@end + +static GPBFileDescriptor *GPBDescriptorRoot_FileDescriptor(void) { + // This is called by +initialize so there is no need to worry + // about thread safety of the singleton. + static GPBFileDescriptor *descriptor = NULL; + if (!descriptor) { + descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf" + syntax:GPBFileSyntaxProto2]; + } + return descriptor; +} + +#pragma mark - GPBFileDescriptorSet + +@implementation GPBFileDescriptorSet + +@dynamic fileArray; + +typedef struct GPBFileDescriptorSet_Storage { + uint32_t _has_storage_[1]; + NSMutableArray *fileArray; +} GPBFileDescriptorSet_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "fileArray", + .number = GPBFileDescriptorSet_FieldNumber_FileArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorSet_Storage, fileArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFileDescriptorProto), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFileDescriptorSet class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBFileDescriptorSet_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBFileDescriptorProto + +@implementation GPBFileDescriptorProto + +@dynamic hasName, name; +@dynamic hasPackage, package; +@dynamic dependencyArray; +@dynamic publicDependencyArray; +@dynamic weakDependencyArray; +@dynamic messageTypeArray; +@dynamic enumTypeArray; +@dynamic serviceArray; +@dynamic extensionArray; +@dynamic hasOptions, options; +@dynamic hasSourceCodeInfo, sourceCodeInfo; +@dynamic hasSyntax, syntax; + +typedef struct GPBFileDescriptorProto_Storage { + uint32_t _has_storage_[1]; + NSString *name; + NSString *package; + NSMutableArray *dependencyArray; + NSMutableArray *messageTypeArray; + NSMutableArray *enumTypeArray; + NSMutableArray *serviceArray; + NSMutableArray *extensionArray; + GPBFileOptions *options; + GPBSourceCodeInfo *sourceCodeInfo; + GPBInt32Array *publicDependencyArray; + GPBInt32Array *weakDependencyArray; + NSString *syntax; +} GPBFileDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBFileDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "package", + .number = GPBFileDescriptorProto_FieldNumber_Package, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileDescriptorProto_Storage, package), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "dependencyArray", + .number = GPBFileDescriptorProto_FieldNumber_DependencyArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeString, + .offset = offsetof(GPBFileDescriptorProto_Storage, dependencyArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "messageTypeArray", + .number = GPBFileDescriptorProto_FieldNumber_MessageTypeArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, messageTypeArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "enumTypeArray", + .number = GPBFileDescriptorProto_FieldNumber_EnumTypeArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, enumTypeArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBEnumDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "serviceArray", + .number = GPBFileDescriptorProto_FieldNumber_ServiceArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, serviceArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBServiceDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "extensionArray", + .number = GPBFileDescriptorProto_FieldNumber_ExtensionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, extensionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFieldDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBFileDescriptorProto_FieldNumber_Options, + .hasIndex = 9, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFileOptions), + .fieldOptions = NULL, + }, + { + .name = "sourceCodeInfo", + .number = GPBFileDescriptorProto_FieldNumber_SourceCodeInfo, + .hasIndex = 10, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileDescriptorProto_Storage, sourceCodeInfo), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBSourceCodeInfo), + .fieldOptions = NULL, + }, + { + .name = "publicDependencyArray", + .number = GPBFileDescriptorProto_FieldNumber_PublicDependencyArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeInt32, + .offset = offsetof(GPBFileDescriptorProto_Storage, publicDependencyArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "weakDependencyArray", + .number = GPBFileDescriptorProto_FieldNumber_WeakDependencyArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeInt32, + .offset = offsetof(GPBFileDescriptorProto_Storage, weakDependencyArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "syntax", + .number = GPBFileDescriptorProto_FieldNumber_Syntax, + .hasIndex = 11, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileDescriptorProto_Storage, syntax), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFileDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBFileDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBDescriptorProto + +@implementation GPBDescriptorProto + +@dynamic hasName, name; +@dynamic fieldArray; +@dynamic extensionArray; +@dynamic nestedTypeArray; +@dynamic enumTypeArray; +@dynamic extensionRangeArray; +@dynamic oneofDeclArray; +@dynamic hasOptions, options; + +typedef struct GPBDescriptorProto_Storage { + uint32_t _has_storage_[1]; + NSString *name; + NSMutableArray *fieldArray; + NSMutableArray *nestedTypeArray; + NSMutableArray *enumTypeArray; + NSMutableArray *extensionRangeArray; + NSMutableArray *extensionArray; + GPBMessageOptions *options; + NSMutableArray *oneofDeclArray; +} GPBDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "fieldArray", + .number = GPBDescriptorProto_FieldNumber_FieldArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, fieldArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFieldDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "nestedTypeArray", + .number = GPBDescriptorProto_FieldNumber_NestedTypeArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, nestedTypeArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "enumTypeArray", + .number = GPBDescriptorProto_FieldNumber_EnumTypeArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, enumTypeArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBEnumDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "extensionRangeArray", + .number = GPBDescriptorProto_FieldNumber_ExtensionRangeArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, extensionRangeArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBDescriptorProto_ExtensionRange), + .fieldOptions = NULL, + }, + { + .name = "extensionArray", + .number = GPBDescriptorProto_FieldNumber_ExtensionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, extensionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFieldDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBDescriptorProto_FieldNumber_Options, + .hasIndex = 7, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBMessageOptions), + .fieldOptions = NULL, + }, + { + .name = "oneofDeclArray", + .number = GPBDescriptorProto_FieldNumber_OneofDeclArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBDescriptorProto_Storage, oneofDeclArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBOneofDescriptorProto), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBDescriptorProto_ExtensionRange + +@implementation GPBDescriptorProto_ExtensionRange + +@dynamic hasStart, start; +@dynamic hasEnd, end; + +typedef struct GPBDescriptorProto_ExtensionRange_Storage { + uint32_t _has_storage_[1]; + int32_t start; + int32_t end; +} GPBDescriptorProto_ExtensionRange_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "start", + .number = GPBDescriptorProto_ExtensionRange_FieldNumber_Start, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBDescriptorProto_ExtensionRange_Storage, start), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "end", + .number = GPBDescriptorProto_ExtensionRange_FieldNumber_End, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBDescriptorProto_ExtensionRange_Storage, end), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDescriptorProto_ExtensionRange class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBDescriptorProto_ExtensionRange_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBFieldDescriptorProto + +@implementation GPBFieldDescriptorProto + +@dynamic hasName, name; +@dynamic hasNumber, number; +@dynamic hasLabel, label; +@dynamic hasType, type; +@dynamic hasTypeName, typeName; +@dynamic hasExtendee, extendee; +@dynamic hasDefaultValue, defaultValue; +@dynamic hasOneofIndex, oneofIndex; +@dynamic hasOptions, options; + +typedef struct GPBFieldDescriptorProto_Storage { + uint32_t _has_storage_[1]; + int32_t number; + GPBFieldDescriptorProto_Label label; + GPBFieldDescriptorProto_Type type; + int32_t oneofIndex; + NSString *name; + NSString *extendee; + NSString *typeName; + NSString *defaultValue; + GPBFieldOptions *options; +} GPBFieldDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBFieldDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFieldDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "extendee", + .number = GPBFieldDescriptorProto_FieldNumber_Extendee, + .hasIndex = 5, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFieldDescriptorProto_Storage, extendee), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "number", + .number = GPBFieldDescriptorProto_FieldNumber_Number, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBFieldDescriptorProto_Storage, number), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "label", + .number = GPBFieldDescriptorProto_FieldNumber_Label, + .hasIndex = 2, + .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor, + .type = GPBTypeEnum, + .offset = offsetof(GPBFieldDescriptorProto_Storage, label), + .defaultValue.valueEnum = GPBFieldDescriptorProto_Label_LabelOptional, + .typeSpecific.enumDescFunc = GPBFieldDescriptorProto_Label_EnumDescriptor, + .fieldOptions = NULL, + }, + { + .name = "type", + .number = GPBFieldDescriptorProto_FieldNumber_Type, + .hasIndex = 3, + .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor, + .type = GPBTypeEnum, + .offset = offsetof(GPBFieldDescriptorProto_Storage, type), + .defaultValue.valueEnum = GPBFieldDescriptorProto_Type_TypeDouble, + .typeSpecific.enumDescFunc = GPBFieldDescriptorProto_Type_EnumDescriptor, + .fieldOptions = NULL, + }, + { + .name = "typeName", + .number = GPBFieldDescriptorProto_FieldNumber_TypeName, + .hasIndex = 4, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFieldDescriptorProto_Storage, typeName), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "defaultValue", + .number = GPBFieldDescriptorProto_FieldNumber_DefaultValue, + .hasIndex = 6, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFieldDescriptorProto_Storage, defaultValue), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBFieldDescriptorProto_FieldNumber_Options, + .hasIndex = 8, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBFieldDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBFieldOptions), + .fieldOptions = NULL, + }, + { + .name = "oneofIndex", + .number = GPBFieldDescriptorProto_FieldNumber_OneofIndex, + .hasIndex = 7, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBFieldDescriptorProto_Storage, oneofIndex), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + static GPBMessageEnumDescription enums[] = { + { .enumDescriptorFunc = GPBFieldDescriptorProto_Type_EnumDescriptor }, + { .enumDescriptorFunc = GPBFieldDescriptorProto_Label_EnumDescriptor }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFieldDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:enums + enumCount:sizeof(enums) / sizeof(GPBMessageEnumDescription) + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBFieldDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - Enum GPBFieldDescriptorProto_Type + +GPBEnumDescriptor *GPBFieldDescriptorProto_Type_EnumDescriptor(void) { + static GPBEnumDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageEnumValueDescription values[] = { + { .name = "TypeDouble", .number = GPBFieldDescriptorProto_Type_TypeDouble }, + { .name = "TypeFloat", .number = GPBFieldDescriptorProto_Type_TypeFloat }, + { .name = "TypeInt64", .number = GPBFieldDescriptorProto_Type_TypeInt64 }, + { .name = "TypeUint64", .number = GPBFieldDescriptorProto_Type_TypeUint64 }, + { .name = "TypeInt32", .number = GPBFieldDescriptorProto_Type_TypeInt32 }, + { .name = "TypeFixed64", .number = GPBFieldDescriptorProto_Type_TypeFixed64 }, + { .name = "TypeFixed32", .number = GPBFieldDescriptorProto_Type_TypeFixed32 }, + { .name = "TypeBool", .number = GPBFieldDescriptorProto_Type_TypeBool }, + { .name = "TypeString", .number = GPBFieldDescriptorProto_Type_TypeString }, + { .name = "TypeGroup", .number = GPBFieldDescriptorProto_Type_TypeGroup }, + { .name = "TypeMessage", .number = GPBFieldDescriptorProto_Type_TypeMessage }, + { .name = "TypeBytes", .number = GPBFieldDescriptorProto_Type_TypeBytes }, + { .name = "TypeUint32", .number = GPBFieldDescriptorProto_Type_TypeUint32 }, + { .name = "TypeEnum", .number = GPBFieldDescriptorProto_Type_TypeEnum }, + { .name = "TypeSfixed32", .number = GPBFieldDescriptorProto_Type_TypeSfixed32 }, + { .name = "TypeSfixed64", .number = GPBFieldDescriptorProto_Type_TypeSfixed64 }, + { .name = "TypeSint32", .number = GPBFieldDescriptorProto_Type_TypeSint32 }, + { .name = "TypeSint64", .number = GPBFieldDescriptorProto_Type_TypeSint64 }, + }; + descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBFieldDescriptorProto_Type) + values:values + valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription) + enumVerifier:GPBFieldDescriptorProto_Type_IsValidValue]; + } + return descriptor; +} + +BOOL GPBFieldDescriptorProto_Type_IsValidValue(int32_t value__) { + switch (value__) { + case GPBFieldDescriptorProto_Type_TypeDouble: + case GPBFieldDescriptorProto_Type_TypeFloat: + case GPBFieldDescriptorProto_Type_TypeInt64: + case GPBFieldDescriptorProto_Type_TypeUint64: + case GPBFieldDescriptorProto_Type_TypeInt32: + case GPBFieldDescriptorProto_Type_TypeFixed64: + case GPBFieldDescriptorProto_Type_TypeFixed32: + case GPBFieldDescriptorProto_Type_TypeBool: + case GPBFieldDescriptorProto_Type_TypeString: + case GPBFieldDescriptorProto_Type_TypeGroup: + case GPBFieldDescriptorProto_Type_TypeMessage: + case GPBFieldDescriptorProto_Type_TypeBytes: + case GPBFieldDescriptorProto_Type_TypeUint32: + case GPBFieldDescriptorProto_Type_TypeEnum: + case GPBFieldDescriptorProto_Type_TypeSfixed32: + case GPBFieldDescriptorProto_Type_TypeSfixed64: + case GPBFieldDescriptorProto_Type_TypeSint32: + case GPBFieldDescriptorProto_Type_TypeSint64: + return YES; + default: + return NO; + } +} + +#pragma mark - Enum GPBFieldDescriptorProto_Label + +GPBEnumDescriptor *GPBFieldDescriptorProto_Label_EnumDescriptor(void) { + static GPBEnumDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageEnumValueDescription values[] = { + { .name = "LabelOptional", .number = GPBFieldDescriptorProto_Label_LabelOptional }, + { .name = "LabelRequired", .number = GPBFieldDescriptorProto_Label_LabelRequired }, + { .name = "LabelRepeated", .number = GPBFieldDescriptorProto_Label_LabelRepeated }, + }; + descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBFieldDescriptorProto_Label) + values:values + valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription) + enumVerifier:GPBFieldDescriptorProto_Label_IsValidValue]; + } + return descriptor; +} + +BOOL GPBFieldDescriptorProto_Label_IsValidValue(int32_t value__) { + switch (value__) { + case GPBFieldDescriptorProto_Label_LabelOptional: + case GPBFieldDescriptorProto_Label_LabelRequired: + case GPBFieldDescriptorProto_Label_LabelRepeated: + return YES; + default: + return NO; + } +} + +#pragma mark - GPBOneofDescriptorProto + +@implementation GPBOneofDescriptorProto + +@dynamic hasName, name; + +typedef struct GPBOneofDescriptorProto_Storage { + uint32_t _has_storage_[1]; + NSString *name; +} GPBOneofDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBOneofDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBOneofDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBOneofDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBOneofDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBEnumDescriptorProto + +@implementation GPBEnumDescriptorProto + +@dynamic hasName, name; +@dynamic valueArray; +@dynamic hasOptions, options; + +typedef struct GPBEnumDescriptorProto_Storage { + uint32_t _has_storage_[1]; + NSString *name; + NSMutableArray *valueArray; + GPBEnumOptions *options; +} GPBEnumDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBEnumDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBEnumDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "valueArray", + .number = GPBEnumDescriptorProto_FieldNumber_ValueArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBEnumDescriptorProto_Storage, valueArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBEnumValueDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBEnumDescriptorProto_FieldNumber_Options, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBEnumDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBEnumOptions), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBEnumDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBEnumValueDescriptorProto + +@implementation GPBEnumValueDescriptorProto + +@dynamic hasName, name; +@dynamic hasNumber, number; +@dynamic hasOptions, options; + +typedef struct GPBEnumValueDescriptorProto_Storage { + uint32_t _has_storage_[1]; + int32_t number; + NSString *name; + GPBEnumValueOptions *options; +} GPBEnumValueDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBEnumValueDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBEnumValueDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "number", + .number = GPBEnumValueDescriptorProto_FieldNumber_Number, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBEnumValueDescriptorProto_Storage, number), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBEnumValueDescriptorProto_FieldNumber_Options, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBEnumValueDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBEnumValueOptions), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumValueDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBEnumValueDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBServiceDescriptorProto + +@implementation GPBServiceDescriptorProto + +@dynamic hasName, name; +@dynamic methodArray; +@dynamic hasOptions, options; + +typedef struct GPBServiceDescriptorProto_Storage { + uint32_t _has_storage_[1]; + NSString *name; + NSMutableArray *methodArray; + GPBServiceOptions *options; +} GPBServiceDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBServiceDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBServiceDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "methodArray", + .number = GPBServiceDescriptorProto_FieldNumber_MethodArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBServiceDescriptorProto_Storage, methodArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBMethodDescriptorProto), + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBServiceDescriptorProto_FieldNumber_Options, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBServiceDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBServiceOptions), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBServiceDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBServiceDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBMethodDescriptorProto + +@implementation GPBMethodDescriptorProto + +@dynamic hasName, name; +@dynamic hasInputType, inputType; +@dynamic hasOutputType, outputType; +@dynamic hasOptions, options; +@dynamic hasClientStreaming, clientStreaming; +@dynamic hasServerStreaming, serverStreaming; + +typedef struct GPBMethodDescriptorProto_Storage { + uint32_t _has_storage_[1]; + BOOL clientStreaming; + BOOL serverStreaming; + NSString *name; + NSString *inputType; + NSString *outputType; + GPBMethodOptions *options; +} GPBMethodDescriptorProto_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "name", + .number = GPBMethodDescriptorProto_FieldNumber_Name, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBMethodDescriptorProto_Storage, name), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "inputType", + .number = GPBMethodDescriptorProto_FieldNumber_InputType, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBMethodDescriptorProto_Storage, inputType), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "outputType", + .number = GPBMethodDescriptorProto_FieldNumber_OutputType, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBMethodDescriptorProto_Storage, outputType), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "options", + .number = GPBMethodDescriptorProto_FieldNumber_Options, + .hasIndex = 3, + .flags = GPBFieldOptional, + .type = GPBTypeMessage, + .offset = offsetof(GPBMethodDescriptorProto_Storage, options), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBMethodOptions), + .fieldOptions = NULL, + }, + { + .name = "clientStreaming", + .number = GPBMethodDescriptorProto_FieldNumber_ClientStreaming, + .hasIndex = 4, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMethodDescriptorProto_Storage, clientStreaming), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "serverStreaming", + .number = GPBMethodDescriptorProto_FieldNumber_ServerStreaming, + .hasIndex = 5, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMethodDescriptorProto_Storage, serverStreaming), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBMethodDescriptorProto class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBMethodDescriptorProto_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBFileOptions + +@implementation GPBFileOptions + +@dynamic hasJavaPackage, javaPackage; +@dynamic hasJavaOuterClassname, javaOuterClassname; +@dynamic hasJavaMultipleFiles, javaMultipleFiles; +@dynamic hasJavaGenerateEqualsAndHash, javaGenerateEqualsAndHash; +@dynamic hasJavaStringCheckUtf8, javaStringCheckUtf8; +@dynamic hasOptimizeFor, optimizeFor; +@dynamic hasGoPackage, goPackage; +@dynamic hasCcGenericServices, ccGenericServices; +@dynamic hasJavaGenericServices, javaGenericServices; +@dynamic hasPyGenericServices, pyGenericServices; +@dynamic hasDeprecated, deprecated; +@dynamic hasCcEnableArenas, ccEnableArenas; +@dynamic hasObjcClassPrefix, objcClassPrefix; +@dynamic uninterpretedOptionArray; + +typedef struct GPBFileOptions_Storage { + uint32_t _has_storage_[1]; + BOOL javaMultipleFiles; + BOOL ccGenericServices; + BOOL javaGenericServices; + BOOL pyGenericServices; + BOOL javaGenerateEqualsAndHash; + BOOL deprecated; + BOOL javaStringCheckUtf8; + BOOL ccEnableArenas; + GPBFileOptions_OptimizeMode optimizeFor; + NSString *javaPackage; + NSString *javaOuterClassname; + NSString *goPackage; + NSString *objcClassPrefix; + NSMutableArray *uninterpretedOptionArray; +} GPBFileOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "javaPackage", + .number = GPBFileOptions_FieldNumber_JavaPackage, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileOptions_Storage, javaPackage), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "javaOuterClassname", + .number = GPBFileOptions_FieldNumber_JavaOuterClassname, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileOptions_Storage, javaOuterClassname), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "optimizeFor", + .number = GPBFileOptions_FieldNumber_OptimizeFor, + .hasIndex = 5, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor, + .type = GPBTypeEnum, + .offset = offsetof(GPBFileOptions_Storage, optimizeFor), + .defaultValue.valueEnum = GPBFileOptions_OptimizeMode_Speed, + .typeSpecific.enumDescFunc = GPBFileOptions_OptimizeMode_EnumDescriptor, + .fieldOptions = NULL, + }, + { + .name = "javaMultipleFiles", + .number = GPBFileOptions_FieldNumber_JavaMultipleFiles, + .hasIndex = 2, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, javaMultipleFiles), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "goPackage", + .number = GPBFileOptions_FieldNumber_GoPackage, + .hasIndex = 6, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileOptions_Storage, goPackage), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "ccGenericServices", + .number = GPBFileOptions_FieldNumber_CcGenericServices, + .hasIndex = 7, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, ccGenericServices), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "javaGenericServices", + .number = GPBFileOptions_FieldNumber_JavaGenericServices, + .hasIndex = 8, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, javaGenericServices), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "pyGenericServices", + .number = GPBFileOptions_FieldNumber_PyGenericServices, + .hasIndex = 9, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, pyGenericServices), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "javaGenerateEqualsAndHash", + .number = GPBFileOptions_FieldNumber_JavaGenerateEqualsAndHash, + .hasIndex = 3, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, javaGenerateEqualsAndHash), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "deprecated", + .number = GPBFileOptions_FieldNumber_Deprecated, + .hasIndex = 10, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "javaStringCheckUtf8", + .number = GPBFileOptions_FieldNumber_JavaStringCheckUtf8, + .hasIndex = 4, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, javaStringCheckUtf8), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "ccEnableArenas", + .number = GPBFileOptions_FieldNumber_CcEnableArenas, + .hasIndex = 11, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFileOptions_Storage, ccEnableArenas), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "objcClassPrefix", + .number = GPBFileOptions_FieldNumber_ObjcClassPrefix, + .hasIndex = 12, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBFileOptions_Storage, objcClassPrefix), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBFileOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFileOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBMessageEnumDescription enums[] = { + { .enumDescriptorFunc = GPBFileOptions_OptimizeMode_EnumDescriptor }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFileOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:enums + enumCount:sizeof(enums) / sizeof(GPBMessageEnumDescription) + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBFileOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - Enum GPBFileOptions_OptimizeMode + +GPBEnumDescriptor *GPBFileOptions_OptimizeMode_EnumDescriptor(void) { + static GPBEnumDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageEnumValueDescription values[] = { + { .name = "Speed", .number = GPBFileOptions_OptimizeMode_Speed }, + { .name = "CodeSize", .number = GPBFileOptions_OptimizeMode_CodeSize }, + { .name = "LiteRuntime", .number = GPBFileOptions_OptimizeMode_LiteRuntime }, + }; + descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBFileOptions_OptimizeMode) + values:values + valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription) + enumVerifier:GPBFileOptions_OptimizeMode_IsValidValue]; + } + return descriptor; +} + +BOOL GPBFileOptions_OptimizeMode_IsValidValue(int32_t value__) { + switch (value__) { + case GPBFileOptions_OptimizeMode_Speed: + case GPBFileOptions_OptimizeMode_CodeSize: + case GPBFileOptions_OptimizeMode_LiteRuntime: + return YES; + default: + return NO; + } +} + +#pragma mark - GPBMessageOptions + +@implementation GPBMessageOptions + +@dynamic hasMessageSetWireFormat, messageSetWireFormat; +@dynamic hasNoStandardDescriptorAccessor, noStandardDescriptorAccessor; +@dynamic hasDeprecated, deprecated; +@dynamic hasMapEntry, mapEntry; +@dynamic uninterpretedOptionArray; + +typedef struct GPBMessageOptions_Storage { + uint32_t _has_storage_[1]; + BOOL messageSetWireFormat; + BOOL noStandardDescriptorAccessor; + BOOL deprecated; + BOOL mapEntry; + NSMutableArray *uninterpretedOptionArray; +} GPBMessageOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "messageSetWireFormat", + .number = GPBMessageOptions_FieldNumber_MessageSetWireFormat, + .hasIndex = 0, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMessageOptions_Storage, messageSetWireFormat), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "noStandardDescriptorAccessor", + .number = GPBMessageOptions_FieldNumber_NoStandardDescriptorAccessor, + .hasIndex = 1, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMessageOptions_Storage, noStandardDescriptorAccessor), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "deprecated", + .number = GPBMessageOptions_FieldNumber_Deprecated, + .hasIndex = 2, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMessageOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "mapEntry", + .number = GPBMessageOptions_FieldNumber_MapEntry, + .hasIndex = 3, + .flags = GPBFieldOptional, + .type = GPBTypeBool, + .offset = offsetof(GPBMessageOptions_Storage, mapEntry), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBMessageOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBMessageOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBMessageOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBMessageOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBFieldOptions + +@implementation GPBFieldOptions + +@dynamic hasCtype, ctype; +@dynamic hasPacked, packed; +@dynamic hasLazy, lazy; +@dynamic hasDeprecated, deprecated; +@dynamic hasWeak, weak; +@dynamic uninterpretedOptionArray; + +typedef struct GPBFieldOptions_Storage { + uint32_t _has_storage_[1]; + BOOL packed; + BOOL deprecated; + BOOL lazy; + BOOL weak; + GPBFieldOptions_CType ctype; + NSMutableArray *uninterpretedOptionArray; +} GPBFieldOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "ctype", + .number = GPBFieldOptions_FieldNumber_Ctype, + .hasIndex = 0, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor, + .type = GPBTypeEnum, + .offset = offsetof(GPBFieldOptions_Storage, ctype), + .defaultValue.valueEnum = GPBFieldOptions_CType_String, + .typeSpecific.enumDescFunc = GPBFieldOptions_CType_EnumDescriptor, + .fieldOptions = NULL, + }, + { + .name = "packed", + .number = GPBFieldOptions_FieldNumber_Packed, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeBool, + .offset = offsetof(GPBFieldOptions_Storage, packed), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "deprecated", + .number = GPBFieldOptions_FieldNumber_Deprecated, + .hasIndex = 3, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFieldOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "lazy", + .number = GPBFieldOptions_FieldNumber_Lazy, + .hasIndex = 2, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFieldOptions_Storage, lazy), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "weak", + .number = GPBFieldOptions_FieldNumber_Weak, + .hasIndex = 4, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBFieldOptions_Storage, weak), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBFieldOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBFieldOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBMessageEnumDescription enums[] = { + { .enumDescriptorFunc = GPBFieldOptions_CType_EnumDescriptor }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFieldOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:enums + enumCount:sizeof(enums) / sizeof(GPBMessageEnumDescription) + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBFieldOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - Enum GPBFieldOptions_CType + +GPBEnumDescriptor *GPBFieldOptions_CType_EnumDescriptor(void) { + static GPBEnumDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageEnumValueDescription values[] = { + { .name = "String", .number = GPBFieldOptions_CType_String }, + { .name = "Cord", .number = GPBFieldOptions_CType_Cord }, + { .name = "StringPiece", .number = GPBFieldOptions_CType_StringPiece }, + }; + descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBFieldOptions_CType) + values:values + valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription) + enumVerifier:GPBFieldOptions_CType_IsValidValue]; + } + return descriptor; +} + +BOOL GPBFieldOptions_CType_IsValidValue(int32_t value__) { + switch (value__) { + case GPBFieldOptions_CType_String: + case GPBFieldOptions_CType_Cord: + case GPBFieldOptions_CType_StringPiece: + return YES; + default: + return NO; + } +} + +#pragma mark - GPBEnumOptions + +@implementation GPBEnumOptions + +@dynamic hasAllowAlias, allowAlias; +@dynamic hasDeprecated, deprecated; +@dynamic uninterpretedOptionArray; + +typedef struct GPBEnumOptions_Storage { + uint32_t _has_storage_[1]; + BOOL allowAlias; + BOOL deprecated; + NSMutableArray *uninterpretedOptionArray; +} GPBEnumOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "allowAlias", + .number = GPBEnumOptions_FieldNumber_AllowAlias, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeBool, + .offset = offsetof(GPBEnumOptions_Storage, allowAlias), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "deprecated", + .number = GPBEnumOptions_FieldNumber_Deprecated, + .hasIndex = 1, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBEnumOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBEnumOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBEnumOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBEnumOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBEnumValueOptions + +@implementation GPBEnumValueOptions + +@dynamic hasDeprecated, deprecated; +@dynamic uninterpretedOptionArray; + +typedef struct GPBEnumValueOptions_Storage { + uint32_t _has_storage_[1]; + BOOL deprecated; + NSMutableArray *uninterpretedOptionArray; +} GPBEnumValueOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "deprecated", + .number = GPBEnumValueOptions_FieldNumber_Deprecated, + .hasIndex = 0, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBEnumValueOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBEnumValueOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBEnumValueOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumValueOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBEnumValueOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBServiceOptions + +@implementation GPBServiceOptions + +@dynamic hasDeprecated, deprecated; +@dynamic uninterpretedOptionArray; + +typedef struct GPBServiceOptions_Storage { + uint32_t _has_storage_[1]; + BOOL deprecated; + NSMutableArray *uninterpretedOptionArray; +} GPBServiceOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "deprecated", + .number = GPBServiceOptions_FieldNumber_Deprecated, + .hasIndex = 0, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBServiceOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBServiceOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBServiceOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBServiceOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBServiceOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBMethodOptions + +@implementation GPBMethodOptions + +@dynamic hasDeprecated, deprecated; +@dynamic uninterpretedOptionArray; + +typedef struct GPBMethodOptions_Storage { + uint32_t _has_storage_[1]; + BOOL deprecated; + NSMutableArray *uninterpretedOptionArray; +} GPBMethodOptions_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "deprecated", + .number = GPBMethodOptions_FieldNumber_Deprecated, + .hasIndex = 0, + .flags = GPBFieldOptional | GPBFieldHasDefaultValue, + .type = GPBTypeBool, + .offset = offsetof(GPBMethodOptions_Storage, deprecated), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "uninterpretedOptionArray", + .number = GPBMethodOptions_FieldNumber_UninterpretedOptionArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBMethodOptions_Storage, uninterpretedOptionArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption), + .fieldOptions = NULL, + }, + }; + static GPBExtensionRange ranges[] = { + { .start = 1000, .end = 536870912 }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBMethodOptions class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:ranges + rangeCount:sizeof(ranges) / sizeof(GPBExtensionRange) + storageSize:sizeof(GPBMethodOptions_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBUninterpretedOption + +@implementation GPBUninterpretedOption + +@dynamic nameArray; +@dynamic hasIdentifierValue, identifierValue; +@dynamic hasPositiveIntValue, positiveIntValue; +@dynamic hasNegativeIntValue, negativeIntValue; +@dynamic hasDoubleValue, doubleValue; +@dynamic hasStringValue, stringValue; +@dynamic hasAggregateValue, aggregateValue; + +typedef struct GPBUninterpretedOption_Storage { + uint32_t _has_storage_[1]; + NSMutableArray *nameArray; + NSString *identifierValue; + NSData *stringValue; + NSString *aggregateValue; + uint64_t positiveIntValue; + int64_t negativeIntValue; + double doubleValue; +} GPBUninterpretedOption_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "nameArray", + .number = GPBUninterpretedOption_FieldNumber_NameArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBUninterpretedOption_Storage, nameArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBUninterpretedOption_NamePart), + .fieldOptions = NULL, + }, + { + .name = "identifierValue", + .number = GPBUninterpretedOption_FieldNumber_IdentifierValue, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBUninterpretedOption_Storage, identifierValue), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "positiveIntValue", + .number = GPBUninterpretedOption_FieldNumber_PositiveIntValue, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeUInt64, + .offset = offsetof(GPBUninterpretedOption_Storage, positiveIntValue), + .defaultValue.valueUInt64 = 0ULL, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "negativeIntValue", + .number = GPBUninterpretedOption_FieldNumber_NegativeIntValue, + .hasIndex = 3, + .flags = GPBFieldOptional, + .type = GPBTypeInt64, + .offset = offsetof(GPBUninterpretedOption_Storage, negativeIntValue), + .defaultValue.valueInt64 = 0LL, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "doubleValue", + .number = GPBUninterpretedOption_FieldNumber_DoubleValue, + .hasIndex = 4, + .flags = GPBFieldOptional, + .type = GPBTypeDouble, + .offset = offsetof(GPBUninterpretedOption_Storage, doubleValue), + .defaultValue.valueDouble = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "stringValue", + .number = GPBUninterpretedOption_FieldNumber_StringValue, + .hasIndex = 5, + .flags = GPBFieldOptional, + .type = GPBTypeData, + .offset = offsetof(GPBUninterpretedOption_Storage, stringValue), + .defaultValue.valueData = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "aggregateValue", + .number = GPBUninterpretedOption_FieldNumber_AggregateValue, + .hasIndex = 6, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBUninterpretedOption_Storage, aggregateValue), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBUninterpretedOption class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBUninterpretedOption_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBUninterpretedOption_NamePart + +@implementation GPBUninterpretedOption_NamePart + +@dynamic hasNamePart, namePart; +@dynamic hasIsExtension, isExtension; + +typedef struct GPBUninterpretedOption_NamePart_Storage { + uint32_t _has_storage_[1]; + BOOL isExtension; + NSString *namePart; +} GPBUninterpretedOption_NamePart_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "namePart", + .number = GPBUninterpretedOption_NamePart_FieldNumber_NamePart, + .hasIndex = 0, + .flags = GPBFieldRequired, + .type = GPBTypeString, + .offset = offsetof(GPBUninterpretedOption_NamePart_Storage, namePart), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "isExtension", + .number = GPBUninterpretedOption_NamePart_FieldNumber_IsExtension, + .hasIndex = 1, + .flags = GPBFieldRequired, + .type = GPBTypeBool, + .offset = offsetof(GPBUninterpretedOption_NamePart_Storage, isExtension), + .defaultValue.valueBool = NO, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBUninterpretedOption_NamePart class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBUninterpretedOption_NamePart_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBSourceCodeInfo + +@implementation GPBSourceCodeInfo + +@dynamic locationArray; + +typedef struct GPBSourceCodeInfo_Storage { + uint32_t _has_storage_[1]; + NSMutableArray *locationArray; +} GPBSourceCodeInfo_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "locationArray", + .number = GPBSourceCodeInfo_FieldNumber_LocationArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeMessage, + .offset = offsetof(GPBSourceCodeInfo_Storage, locationArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = GPBStringifySymbol(GPBSourceCodeInfo_Location), + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBSourceCodeInfo class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBSourceCodeInfo_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + +#pragma mark - GPBSourceCodeInfo_Location + +@implementation GPBSourceCodeInfo_Location + +@dynamic pathArray; +@dynamic spanArray; +@dynamic hasLeadingComments, leadingComments; +@dynamic hasTrailingComments, trailingComments; +@dynamic leadingDetachedCommentsArray; + +typedef struct GPBSourceCodeInfo_Location_Storage { + uint32_t _has_storage_[1]; + GPBInt32Array *pathArray; + GPBInt32Array *spanArray; + NSString *leadingComments; + NSString *trailingComments; + NSMutableArray *leadingDetachedCommentsArray; +} GPBSourceCodeInfo_Location_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "pathArray", + .number = GPBSourceCodeInfo_Location_FieldNumber_PathArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated | GPBFieldPacked, + .type = GPBTypeInt32, + .offset = offsetof(GPBSourceCodeInfo_Location_Storage, pathArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + #if GPBOBJC_INCLUDE_FIELD_OPTIONS + .fieldOptions = "\000\000\000\002\020\001", + #else + .fieldOptions = NULL, + #endif // GPBOBJC_INCLUDE_FIELD_OPTIONS + }, + { + .name = "spanArray", + .number = GPBSourceCodeInfo_Location_FieldNumber_SpanArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated | GPBFieldPacked, + .type = GPBTypeInt32, + .offset = offsetof(GPBSourceCodeInfo_Location_Storage, spanArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + #if GPBOBJC_INCLUDE_FIELD_OPTIONS + .fieldOptions = "\000\000\000\002\020\001", + #else + .fieldOptions = NULL, + #endif // GPBOBJC_INCLUDE_FIELD_OPTIONS + }, + { + .name = "leadingComments", + .number = GPBSourceCodeInfo_Location_FieldNumber_LeadingComments, + .hasIndex = 2, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBSourceCodeInfo_Location_Storage, leadingComments), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "trailingComments", + .number = GPBSourceCodeInfo_Location_FieldNumber_TrailingComments, + .hasIndex = 3, + .flags = GPBFieldOptional, + .type = GPBTypeString, + .offset = offsetof(GPBSourceCodeInfo_Location_Storage, trailingComments), + .defaultValue.valueString = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "leadingDetachedCommentsArray", + .number = GPBSourceCodeInfo_Location_FieldNumber_LeadingDetachedCommentsArray, + .hasIndex = GPBNoHasBit, + .flags = GPBFieldRepeated, + .type = GPBTypeString, + .offset = offsetof(GPBSourceCodeInfo_Location_Storage, leadingDetachedCommentsArray), + .defaultValue.valueMessage = nil, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBSourceCodeInfo_Location class] + rootClass:[GPBDescriptorRoot class] + file:GPBDescriptorRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBSourceCodeInfo_Location_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + diff --git a/objectivec/google/protobuf/Duration.pbobjc.h b/objectivec/google/protobuf/Duration.pbobjc.h new file mode 100644 index 00000000..c452d0bb --- /dev/null +++ b/objectivec/google/protobuf/Duration.pbobjc.h @@ -0,0 +1,83 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/duration.proto + +#import "GPBProtocolBuffers.h" + +#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000 +#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources. +#endif + +CF_EXTERN_C_BEGIN + +@class GPBDuration; + + +#pragma mark - GPBDurationRoot + +@interface GPBDurationRoot : GPBRootObject +@end + +#pragma mark - GPBDuration + +typedef GPB_ENUM(GPBDuration_FieldNumber) { + GPBDuration_FieldNumber_Seconds = 1, + GPBDuration_FieldNumber_Nanos = 2, +}; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (durations.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +@interface GPBDuration : GPBMessage + +// Signed seconds of the span of time. Must be from -315,576,000,000 +// to +315,576,000,000 inclusive. +@property(nonatomic, readwrite) int64_t seconds; + +// Signed fractions of a second at nanosecond resolution of the span +// of time. Durations less than one second are represented with a 0 +// `seconds` field and a positive or negative `nanos` field. For durations +// of one second or more, a non-zero value for the `nanos` field must be +// of the same sign as the `seconds` field. Must be from -999,999,999 +// to +999,999,999 inclusive. +@property(nonatomic, readwrite) int32_t nanos; + +@end + +CF_EXTERN_C_END diff --git a/objectivec/google/protobuf/Duration.pbobjc.m b/objectivec/google/protobuf/Duration.pbobjc.m new file mode 100644 index 00000000..cf0a3064 --- /dev/null +++ b/objectivec/google/protobuf/Duration.pbobjc.m @@ -0,0 +1,85 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/duration.proto + +#import "GPBProtocolBuffers_RuntimeSupport.h" + +#import "google/protobuf/Duration.pbobjc.h" + +#pragma mark - GPBDurationRoot + +@implementation GPBDurationRoot + +@end + +static GPBFileDescriptor *GPBDurationRoot_FileDescriptor(void) { + // This is called by +initialize so there is no need to worry + // about thread safety of the singleton. + static GPBFileDescriptor *descriptor = NULL; + if (!descriptor) { + descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf" + syntax:GPBFileSyntaxProto3]; + } + return descriptor; +} + +#pragma mark - GPBDuration + +@implementation GPBDuration + +@dynamic seconds; +@dynamic nanos; + +typedef struct GPBDuration_Storage { + uint32_t _has_storage_[1]; + int32_t nanos; + int64_t seconds; +} GPBDuration_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "seconds", + .number = GPBDuration_FieldNumber_Seconds, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeInt64, + .offset = offsetof(GPBDuration_Storage, seconds), + .defaultValue.valueInt64 = 0LL, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "nanos", + .number = GPBDuration_FieldNumber_Nanos, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBDuration_Storage, nanos), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDuration class] + rootClass:[GPBDurationRoot class] + file:GPBDurationRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBDuration_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + diff --git a/objectivec/google/protobuf/Timestamp.pbobjc.h b/objectivec/google/protobuf/Timestamp.pbobjc.h new file mode 100644 index 00000000..c9fc9175 --- /dev/null +++ b/objectivec/google/protobuf/Timestamp.pbobjc.h @@ -0,0 +1,94 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/timestamp.proto + +#import "GPBProtocolBuffers.h" + +#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000 +#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources. +#endif + +CF_EXTERN_C_BEGIN + +@class GPBTimestamp; + + +#pragma mark - GPBTimestampRoot + +@interface GPBTimestampRoot : GPBRootObject +@end + +#pragma mark - GPBTimestamp + +typedef GPB_ENUM(GPBTimestamp_FieldNumber) { + GPBTimestamp_FieldNumber_Seconds = 1, + GPBTimestamp_FieldNumber_Nanos = 2, +}; + +// A Timestamp represents a point in time independent of any time zone +// or calendar, represented as seconds and fractions of seconds at +// nanosecond resolution in UTC Epoch time. It is encoded using the +// Proleptic Gregorian Calendar which extends the Gregorian calendar +// backwards to year one. It is encoded assuming all minutes are 60 +// seconds long, i.e. leap seconds are "smeared" so that no leap second +// table is needed for interpretation. Range is from +// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. +// By restricting to that range, we ensure that we can convert to +// and from RFC 3339 date strings. +// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// Example 5: Compute Timestamp from Python `datetime.datetime`. +// +// now = datetime.datetime.utcnow() +// seconds = int(time.mktime(now.timetuple())) +// nanos = now.microsecond * 1000 +// timestamp = Timestamp(seconds=seconds, nanos=nanos) +@interface GPBTimestamp : GPBMessage + +// Represents seconds of UTC time since Unix epoch +// 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to +// 9999-12-31T23:59:59Z inclusive. +@property(nonatomic, readwrite) int64_t seconds; + +// Non-negative fractions of a second at nanosecond resolution. Negative +// second values with fractions must still have non-negative nanos values +// that count forward in time. Must be from 0 to 999,999,999 +// inclusive. +@property(nonatomic, readwrite) int32_t nanos; + +@end + +CF_EXTERN_C_END diff --git a/objectivec/google/protobuf/Timestamp.pbobjc.m b/objectivec/google/protobuf/Timestamp.pbobjc.m new file mode 100644 index 00000000..1c8d3c76 --- /dev/null +++ b/objectivec/google/protobuf/Timestamp.pbobjc.m @@ -0,0 +1,85 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/protobuf/timestamp.proto + +#import "GPBProtocolBuffers_RuntimeSupport.h" + +#import "google/protobuf/Timestamp.pbobjc.h" + +#pragma mark - GPBTimestampRoot + +@implementation GPBTimestampRoot + +@end + +static GPBFileDescriptor *GPBTimestampRoot_FileDescriptor(void) { + // This is called by +initialize so there is no need to worry + // about thread safety of the singleton. + static GPBFileDescriptor *descriptor = NULL; + if (!descriptor) { + descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf" + syntax:GPBFileSyntaxProto3]; + } + return descriptor; +} + +#pragma mark - GPBTimestamp + +@implementation GPBTimestamp + +@dynamic seconds; +@dynamic nanos; + +typedef struct GPBTimestamp_Storage { + uint32_t _has_storage_[1]; + int32_t nanos; + int64_t seconds; +} GPBTimestamp_Storage; + +// This method is threadsafe because it is initially called +// in +initialize for each subclass. ++ (GPBDescriptor *)descriptor { + static GPBDescriptor *descriptor = NULL; + if (!descriptor) { + static GPBMessageFieldDescription fields[] = { + { + .name = "seconds", + .number = GPBTimestamp_FieldNumber_Seconds, + .hasIndex = 0, + .flags = GPBFieldOptional, + .type = GPBTypeInt64, + .offset = offsetof(GPBTimestamp_Storage, seconds), + .defaultValue.valueInt64 = 0LL, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + { + .name = "nanos", + .number = GPBTimestamp_FieldNumber_Nanos, + .hasIndex = 1, + .flags = GPBFieldOptional, + .type = GPBTypeInt32, + .offset = offsetof(GPBTimestamp_Storage, nanos), + .defaultValue.valueInt32 = 0, + .typeSpecific.className = NULL, + .fieldOptions = NULL, + }, + }; + descriptor = [GPBDescriptor allocDescriptorForClass:[GPBTimestamp class] + rootClass:[GPBTimestampRoot class] + file:GPBTimestampRoot_FileDescriptor() + fields:fields + fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription) + oneofs:NULL + oneofCount:0 + enums:NULL + enumCount:0 + ranges:NULL + rangeCount:0 + storageSize:sizeof(GPBTimestamp_Storage) + wireFormat:NO]; + } + return descriptor; +} + +@end + -- cgit v1.2.3