blob: 5c8c73e169e6bdc0c6ee2bb2fe7de4f3d5a0e516 [file] [log] [blame]
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -04001// Generated by the protocol buffer compiler. DO NOT EDIT!
2// source: google/protobuf/type.proto
3
Thomas Van Lenten7c646282022-09-19 13:19:31 -04004// clang-format off
5
Thomas Van Lenten020e4e32022-03-01 14:16:50 -05006#import "GPBProtocolBuffers_RuntimeSupport.h"
7#import "GPBType.pbobjc.h"
Thomas Van Lenten7da023b2016-05-09 13:53:20 -04008
Thomas Van Lenten3e1587f2018-01-23 13:38:28 -05009#import <stdatomic.h>
10
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040011// @@protoc_insertion_point(imports)
12
Thomas Van Lentene664aa62016-04-19 13:13:04 -040013#pragma clang diagnostic push
14#pragma clang diagnostic ignored "-Wdeprecated-declarations"
Dave MacLachlan74956e12019-12-17 17:32:09 -080015#pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
16
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -080017#pragma mark - Objective C Class declarations
18// Forward declarations of Objective C classes that we can use as
19// static values in struct initializers.
20// We don't use [Foo class] because it is not a static value.
21GPBObjCClassDeclaration(GPBAny);
22GPBObjCClassDeclaration(GPBEnumValue);
23GPBObjCClassDeclaration(GPBField);
24GPBObjCClassDeclaration(GPBOption);
25GPBObjCClassDeclaration(GPBSourceContext);
Thomas Van Lentene664aa62016-04-19 13:13:04 -040026
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040027#pragma mark - GPBTypeRoot
28
29@implementation GPBTypeRoot
30
Thomas Van Lenten13a41242016-09-01 11:45:50 -040031// No extensions in the file and none of the imports (direct or indirect)
32// defined extensions, so no need to generate +extensionRegistry.
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040033
34@end
35
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040036#pragma mark - GPBTypeRoot_FileDescriptor
37
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040038static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
39 // This is called by +initialize so there is no need to worry
40 // about thread safety of the singleton.
41 static GPBFileDescriptor *descriptor = NULL;
42 if (!descriptor) {
Thomas Van Lenten1aa65002016-09-15 13:27:17 -040043 GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040044 descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
Thomas Van Lenten337ec302016-08-16 11:26:49 -040045 objcPrefix:@"GPB"
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040046 syntax:GPBFileSyntaxProto3];
47 }
48 return descriptor;
49}
50
TeBoringaca5a602015-08-26 14:02:44 -070051#pragma mark - Enum GPBSyntax
52
53GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void) {
Thomas Van Lentend83837d2018-01-31 13:58:11 -050054 static _Atomic(GPBEnumDescriptor*) descriptor = nil;
TeBoringaca5a602015-08-26 14:02:44 -070055 if (!descriptor) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040056 static const char *valueNames =
57 "SyntaxProto2\000SyntaxProto3\000";
58 static const int32_t values[] = {
59 GPBSyntax_SyntaxProto2,
60 GPBSyntax_SyntaxProto3,
TeBoringaca5a602015-08-26 14:02:44 -070061 };
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040062 GPBEnumDescriptor *worker =
63 [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBSyntax)
64 valueNames:valueNames
65 values:values
66 count:(uint32_t)(sizeof(values) / sizeof(int32_t))
67 enumVerifier:GPBSyntax_IsValidValue];
Jonathan Dierksena721bf62018-01-22 13:26:39 -080068 GPBEnumDescriptor *expected = nil;
69 if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040070 [worker release];
71 }
TeBoringaca5a602015-08-26 14:02:44 -070072 }
73 return descriptor;
74}
75
76BOOL GPBSyntax_IsValidValue(int32_t value__) {
77 switch (value__) {
78 case GPBSyntax_SyntaxProto2:
79 case GPBSyntax_SyntaxProto3:
80 return YES;
81 default:
82 return NO;
83 }
84}
85
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040086#pragma mark - GPBType
87
88@implementation GPBType
89
90@dynamic name;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040091@dynamic fieldsArray, fieldsArray_Count;
92@dynamic oneofsArray, oneofsArray_Count;
93@dynamic optionsArray, optionsArray_Count;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040094@dynamic hasSourceContext, sourceContext;
TeBoringaca5a602015-08-26 14:02:44 -070095@dynamic syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040096
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040097typedef struct GPBType__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040098 uint32_t _has_storage_[1];
TeBoringaca5a602015-08-26 14:02:44 -070099 GPBSyntax syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400100 NSString *name;
101 NSMutableArray *fieldsArray;
102 NSMutableArray *oneofsArray;
103 NSMutableArray *optionsArray;
104 GPBSourceContext *sourceContext;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400105} GPBType__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400106
107// This method is threadsafe because it is initially called
108// in +initialize for each subclass.
109+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400110 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400111 if (!descriptor) {
112 static GPBMessageFieldDescription fields[] = {
113 {
114 .name = "name",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800115 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400116 .number = GPBType_FieldNumber_Name,
117 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400118 .offset = (uint32_t)offsetof(GPBType__storage_, name),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400119 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400120 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400121 },
122 {
123 .name = "fieldsArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800124 .dataTypeSpecific.clazz = GPBObjCClass(GPBField),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400125 .number = GPBType_FieldNumber_FieldsArray,
126 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400127 .offset = (uint32_t)offsetof(GPBType__storage_, fieldsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400128 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400129 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400130 },
131 {
132 .name = "oneofsArray",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800133 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400134 .number = GPBType_FieldNumber_OneofsArray,
135 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400136 .offset = (uint32_t)offsetof(GPBType__storage_, oneofsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400137 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400138 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400139 },
140 {
141 .name = "optionsArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800142 .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400143 .number = GPBType_FieldNumber_OptionsArray,
144 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400145 .offset = (uint32_t)offsetof(GPBType__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400146 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400147 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400148 },
149 {
150 .name = "sourceContext",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800151 .dataTypeSpecific.clazz = GPBObjCClass(GPBSourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400152 .number = GPBType_FieldNumber_SourceContext,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400153 .hasIndex = 1,
154 .offset = (uint32_t)offsetof(GPBType__storage_, sourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400155 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400156 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400157 },
TeBoringaca5a602015-08-26 14:02:44 -0700158 {
159 .name = "syntax",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400160 .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
TeBoringaca5a602015-08-26 14:02:44 -0700161 .number = GPBType_FieldNumber_Syntax,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400162 .hasIndex = 2,
163 .offset = (uint32_t)offsetof(GPBType__storage_, syntax),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400164 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
TeBoringaca5a602015-08-26 14:02:44 -0700165 .dataType = GPBDataTypeEnum,
TeBoringaca5a602015-08-26 14:02:44 -0700166 },
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400167 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400168 GPBDescriptor *localDescriptor =
169 [GPBDescriptor allocDescriptorForClass:[GPBType class]
170 rootClass:[GPBTypeRoot class]
171 file:GPBTypeRoot_FileDescriptor()
172 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400173 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400174 storageSize:sizeof(GPBType__storage_)
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400175 flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
Dave MacLachlanb6311762018-12-11 16:32:48 -0800176 #if defined(DEBUG) && DEBUG
177 NSAssert(descriptor == nil, @"Startup recursed!");
178 #endif // DEBUG
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400179 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400180 }
181 return descriptor;
182}
183
184@end
185
TeBoringaca5a602015-08-26 14:02:44 -0700186int32_t GPBType_Syntax_RawValue(GPBType *message) {
187 GPBDescriptor *descriptor = [GPBType descriptor];
188 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400189 return GPBGetMessageRawEnumField(message, field);
TeBoringaca5a602015-08-26 14:02:44 -0700190}
191
192void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value) {
193 GPBDescriptor *descriptor = [GPBType descriptor];
194 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400195 GPBSetMessageRawEnumField(message, field, value);
TeBoringaca5a602015-08-26 14:02:44 -0700196}
197
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400198#pragma mark - GPBField
199
200@implementation GPBField
201
202@dynamic kind;
203@dynamic cardinality;
204@dynamic number;
205@dynamic name;
206@dynamic typeURL;
207@dynamic oneofIndex;
208@dynamic packed;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400209@dynamic optionsArray, optionsArray_Count;
TeBoringaca5a602015-08-26 14:02:44 -0700210@dynamic jsonName;
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500211@dynamic defaultValue;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400212
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400213typedef struct GPBField__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400214 uint32_t _has_storage_[1];
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400215 GPBField_Kind kind;
216 GPBField_Cardinality cardinality;
217 int32_t number;
218 int32_t oneofIndex;
219 NSString *name;
220 NSString *typeURL;
221 NSMutableArray *optionsArray;
TeBoringaca5a602015-08-26 14:02:44 -0700222 NSString *jsonName;
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500223 NSString *defaultValue;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400224} GPBField__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400225
226// This method is threadsafe because it is initially called
227// in +initialize for each subclass.
228+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400229 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400230 if (!descriptor) {
231 static GPBMessageFieldDescription fields[] = {
232 {
233 .name = "kind",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400234 .dataTypeSpecific.enumDescFunc = GPBField_Kind_EnumDescriptor,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400235 .number = GPBField_FieldNumber_Kind,
236 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400237 .offset = (uint32_t)offsetof(GPBField__storage_, kind),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400238 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400239 .dataType = GPBDataTypeEnum,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400240 },
241 {
242 .name = "cardinality",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400243 .dataTypeSpecific.enumDescFunc = GPBField_Cardinality_EnumDescriptor,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400244 .number = GPBField_FieldNumber_Cardinality,
245 .hasIndex = 1,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400246 .offset = (uint32_t)offsetof(GPBField__storage_, cardinality),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400247 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400248 .dataType = GPBDataTypeEnum,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400249 },
250 {
251 .name = "number",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800252 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400253 .number = GPBField_FieldNumber_Number,
254 .hasIndex = 2,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400255 .offset = (uint32_t)offsetof(GPBField__storage_, number),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400256 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400257 .dataType = GPBDataTypeInt32,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400258 },
259 {
260 .name = "name",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800261 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400262 .number = GPBField_FieldNumber_Name,
263 .hasIndex = 3,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400264 .offset = (uint32_t)offsetof(GPBField__storage_, name),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400265 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400266 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400267 },
268 {
269 .name = "typeURL",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800270 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400271 .number = GPBField_FieldNumber_TypeURL,
272 .hasIndex = 4,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400273 .offset = (uint32_t)offsetof(GPBField__storage_, typeURL),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400274 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400275 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400276 },
277 {
278 .name = "oneofIndex",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800279 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400280 .number = GPBField_FieldNumber_OneofIndex,
281 .hasIndex = 5,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400282 .offset = (uint32_t)offsetof(GPBField__storage_, oneofIndex),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400283 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400284 .dataType = GPBDataTypeInt32,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400285 },
286 {
287 .name = "packed",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800288 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400289 .number = GPBField_FieldNumber_Packed,
290 .hasIndex = 6,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400291 .offset = 7, // Stored in _has_storage_ to save space.
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400292 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400293 .dataType = GPBDataTypeBool,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400294 },
295 {
296 .name = "optionsArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800297 .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400298 .number = GPBField_FieldNumber_OptionsArray,
299 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400300 .offset = (uint32_t)offsetof(GPBField__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400301 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400302 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400303 },
TeBoringaca5a602015-08-26 14:02:44 -0700304 {
305 .name = "jsonName",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800306 .dataTypeSpecific.clazz = Nil,
TeBoringaca5a602015-08-26 14:02:44 -0700307 .number = GPBField_FieldNumber_JsonName,
308 .hasIndex = 8,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400309 .offset = (uint32_t)offsetof(GPBField__storage_, jsonName),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400310 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
TeBoringaca5a602015-08-26 14:02:44 -0700311 .dataType = GPBDataTypeString,
TeBoringaca5a602015-08-26 14:02:44 -0700312 },
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500313 {
314 .name = "defaultValue",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800315 .dataTypeSpecific.clazz = Nil,
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500316 .number = GPBField_FieldNumber_DefaultValue,
317 .hasIndex = 9,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400318 .offset = (uint32_t)offsetof(GPBField__storage_, defaultValue),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400319 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500320 .dataType = GPBDataTypeString,
Thomas Van Lentenfcce7842016-01-05 15:23:50 -0500321 },
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400322 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400323 GPBDescriptor *localDescriptor =
324 [GPBDescriptor allocDescriptorForClass:[GPBField class]
325 rootClass:[GPBTypeRoot class]
326 file:GPBTypeRoot_FileDescriptor()
327 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400328 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400329 storageSize:sizeof(GPBField__storage_)
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400330 flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400331#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
332 static const char *extraTextFormatInfo =
333 "\001\006\004\241!!\000";
334 [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
335#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
Dave MacLachlanb6311762018-12-11 16:32:48 -0800336 #if defined(DEBUG) && DEBUG
337 NSAssert(descriptor == nil, @"Startup recursed!");
338 #endif // DEBUG
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400339 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400340 }
341 return descriptor;
342}
343
344@end
345
346int32_t GPBField_Kind_RawValue(GPBField *message) {
347 GPBDescriptor *descriptor = [GPBField descriptor];
348 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400349 return GPBGetMessageRawEnumField(message, field);
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400350}
351
352void SetGPBField_Kind_RawValue(GPBField *message, int32_t value) {
353 GPBDescriptor *descriptor = [GPBField descriptor];
354 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400355 GPBSetMessageRawEnumField(message, field, value);
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400356}
357
358int32_t GPBField_Cardinality_RawValue(GPBField *message) {
359 GPBDescriptor *descriptor = [GPBField descriptor];
360 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400361 return GPBGetMessageRawEnumField(message, field);
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400362}
363
364void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) {
365 GPBDescriptor *descriptor = [GPBField descriptor];
366 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400367 GPBSetMessageRawEnumField(message, field, value);
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400368}
369
370#pragma mark - Enum GPBField_Kind
371
372GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
Thomas Van Lentend83837d2018-01-31 13:58:11 -0500373 static _Atomic(GPBEnumDescriptor*) descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400374 if (!descriptor) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400375 static const char *valueNames =
376 "TypeUnknown\000TypeDouble\000TypeFloat\000TypeInt"
377 "64\000TypeUint64\000TypeInt32\000TypeFixed64\000Type"
378 "Fixed32\000TypeBool\000TypeString\000TypeGroup\000Ty"
379 "peMessage\000TypeBytes\000TypeUint32\000TypeEnum\000"
380 "TypeSfixed32\000TypeSfixed64\000TypeSint32\000Typ"
381 "eSint64\000";
382 static const int32_t values[] = {
383 GPBField_Kind_TypeUnknown,
384 GPBField_Kind_TypeDouble,
385 GPBField_Kind_TypeFloat,
386 GPBField_Kind_TypeInt64,
387 GPBField_Kind_TypeUint64,
388 GPBField_Kind_TypeInt32,
389 GPBField_Kind_TypeFixed64,
390 GPBField_Kind_TypeFixed32,
391 GPBField_Kind_TypeBool,
392 GPBField_Kind_TypeString,
393 GPBField_Kind_TypeGroup,
394 GPBField_Kind_TypeMessage,
395 GPBField_Kind_TypeBytes,
396 GPBField_Kind_TypeUint32,
397 GPBField_Kind_TypeEnum,
398 GPBField_Kind_TypeSfixed32,
399 GPBField_Kind_TypeSfixed64,
400 GPBField_Kind_TypeSint32,
401 GPBField_Kind_TypeSint64,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400402 };
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400403 GPBEnumDescriptor *worker =
404 [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Kind)
405 valueNames:valueNames
406 values:values
407 count:(uint32_t)(sizeof(values) / sizeof(int32_t))
408 enumVerifier:GPBField_Kind_IsValidValue];
Jonathan Dierksena721bf62018-01-22 13:26:39 -0800409 GPBEnumDescriptor *expected = nil;
410 if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400411 [worker release];
412 }
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400413 }
414 return descriptor;
415}
416
417BOOL GPBField_Kind_IsValidValue(int32_t value__) {
418 switch (value__) {
419 case GPBField_Kind_TypeUnknown:
420 case GPBField_Kind_TypeDouble:
421 case GPBField_Kind_TypeFloat:
422 case GPBField_Kind_TypeInt64:
423 case GPBField_Kind_TypeUint64:
424 case GPBField_Kind_TypeInt32:
425 case GPBField_Kind_TypeFixed64:
426 case GPBField_Kind_TypeFixed32:
427 case GPBField_Kind_TypeBool:
428 case GPBField_Kind_TypeString:
TeBoringaca5a602015-08-26 14:02:44 -0700429 case GPBField_Kind_TypeGroup:
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400430 case GPBField_Kind_TypeMessage:
431 case GPBField_Kind_TypeBytes:
432 case GPBField_Kind_TypeUint32:
433 case GPBField_Kind_TypeEnum:
434 case GPBField_Kind_TypeSfixed32:
435 case GPBField_Kind_TypeSfixed64:
436 case GPBField_Kind_TypeSint32:
437 case GPBField_Kind_TypeSint64:
438 return YES;
439 default:
440 return NO;
441 }
442}
443
444#pragma mark - Enum GPBField_Cardinality
445
446GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) {
Thomas Van Lentend83837d2018-01-31 13:58:11 -0500447 static _Atomic(GPBEnumDescriptor*) descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400448 if (!descriptor) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400449 static const char *valueNames =
450 "CardinalityUnknown\000CardinalityOptional\000C"
451 "ardinalityRequired\000CardinalityRepeated\000";
452 static const int32_t values[] = {
453 GPBField_Cardinality_CardinalityUnknown,
454 GPBField_Cardinality_CardinalityOptional,
455 GPBField_Cardinality_CardinalityRequired,
456 GPBField_Cardinality_CardinalityRepeated,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400457 };
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400458 GPBEnumDescriptor *worker =
459 [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Cardinality)
460 valueNames:valueNames
461 values:values
462 count:(uint32_t)(sizeof(values) / sizeof(int32_t))
463 enumVerifier:GPBField_Cardinality_IsValidValue];
Jonathan Dierksena721bf62018-01-22 13:26:39 -0800464 GPBEnumDescriptor *expected = nil;
465 if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400466 [worker release];
467 }
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400468 }
469 return descriptor;
470}
471
472BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
473 switch (value__) {
474 case GPBField_Cardinality_CardinalityUnknown:
475 case GPBField_Cardinality_CardinalityOptional:
476 case GPBField_Cardinality_CardinalityRequired:
477 case GPBField_Cardinality_CardinalityRepeated:
478 return YES;
479 default:
480 return NO;
481 }
482}
483
484#pragma mark - GPBEnum
485
486@implementation GPBEnum
487
488@dynamic name;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400489@dynamic enumvalueArray, enumvalueArray_Count;
490@dynamic optionsArray, optionsArray_Count;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400491@dynamic hasSourceContext, sourceContext;
TeBoringaca5a602015-08-26 14:02:44 -0700492@dynamic syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400493
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400494typedef struct GPBEnum__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400495 uint32_t _has_storage_[1];
TeBoringaca5a602015-08-26 14:02:44 -0700496 GPBSyntax syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400497 NSString *name;
498 NSMutableArray *enumvalueArray;
499 NSMutableArray *optionsArray;
500 GPBSourceContext *sourceContext;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400501} GPBEnum__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400502
503// This method is threadsafe because it is initially called
504// in +initialize for each subclass.
505+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400506 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400507 if (!descriptor) {
508 static GPBMessageFieldDescription fields[] = {
509 {
510 .name = "name",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800511 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400512 .number = GPBEnum_FieldNumber_Name,
513 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400514 .offset = (uint32_t)offsetof(GPBEnum__storage_, name),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400515 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400516 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400517 },
518 {
519 .name = "enumvalueArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800520 .dataTypeSpecific.clazz = GPBObjCClass(GPBEnumValue),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400521 .number = GPBEnum_FieldNumber_EnumvalueArray,
522 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400523 .offset = (uint32_t)offsetof(GPBEnum__storage_, enumvalueArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400524 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400525 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400526 },
527 {
528 .name = "optionsArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800529 .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400530 .number = GPBEnum_FieldNumber_OptionsArray,
531 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400532 .offset = (uint32_t)offsetof(GPBEnum__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400533 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400534 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400535 },
536 {
537 .name = "sourceContext",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800538 .dataTypeSpecific.clazz = GPBObjCClass(GPBSourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400539 .number = GPBEnum_FieldNumber_SourceContext,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400540 .hasIndex = 1,
541 .offset = (uint32_t)offsetof(GPBEnum__storage_, sourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400542 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400543 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400544 },
TeBoringaca5a602015-08-26 14:02:44 -0700545 {
546 .name = "syntax",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400547 .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
TeBoringaca5a602015-08-26 14:02:44 -0700548 .number = GPBEnum_FieldNumber_Syntax,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400549 .hasIndex = 2,
550 .offset = (uint32_t)offsetof(GPBEnum__storage_, syntax),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400551 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
TeBoringaca5a602015-08-26 14:02:44 -0700552 .dataType = GPBDataTypeEnum,
TeBoringaca5a602015-08-26 14:02:44 -0700553 },
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400554 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400555 GPBDescriptor *localDescriptor =
556 [GPBDescriptor allocDescriptorForClass:[GPBEnum class]
557 rootClass:[GPBTypeRoot class]
558 file:GPBTypeRoot_FileDescriptor()
559 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400560 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400561 storageSize:sizeof(GPBEnum__storage_)
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400562 flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
Dave MacLachlanb6311762018-12-11 16:32:48 -0800563 #if defined(DEBUG) && DEBUG
564 NSAssert(descriptor == nil, @"Startup recursed!");
565 #endif // DEBUG
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400566 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400567 }
568 return descriptor;
569}
570
571@end
572
TeBoringaca5a602015-08-26 14:02:44 -0700573int32_t GPBEnum_Syntax_RawValue(GPBEnum *message) {
574 GPBDescriptor *descriptor = [GPBEnum descriptor];
575 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400576 return GPBGetMessageRawEnumField(message, field);
TeBoringaca5a602015-08-26 14:02:44 -0700577}
578
579void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value) {
580 GPBDescriptor *descriptor = [GPBEnum descriptor];
581 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400582 GPBSetMessageRawEnumField(message, field, value);
TeBoringaca5a602015-08-26 14:02:44 -0700583}
584
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400585#pragma mark - GPBEnumValue
586
587@implementation GPBEnumValue
588
589@dynamic name;
590@dynamic number;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400591@dynamic optionsArray, optionsArray_Count;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400592
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400593typedef struct GPBEnumValue__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400594 uint32_t _has_storage_[1];
595 int32_t number;
596 NSString *name;
597 NSMutableArray *optionsArray;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400598} GPBEnumValue__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400599
600// This method is threadsafe because it is initially called
601// in +initialize for each subclass.
602+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400603 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400604 if (!descriptor) {
605 static GPBMessageFieldDescription fields[] = {
606 {
607 .name = "name",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800608 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400609 .number = GPBEnumValue_FieldNumber_Name,
610 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400611 .offset = (uint32_t)offsetof(GPBEnumValue__storage_, name),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400612 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400613 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400614 },
615 {
616 .name = "number",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800617 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400618 .number = GPBEnumValue_FieldNumber_Number,
619 .hasIndex = 1,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400620 .offset = (uint32_t)offsetof(GPBEnumValue__storage_, number),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400621 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400622 .dataType = GPBDataTypeInt32,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400623 },
624 {
625 .name = "optionsArray",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800626 .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400627 .number = GPBEnumValue_FieldNumber_OptionsArray,
628 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400629 .offset = (uint32_t)offsetof(GPBEnumValue__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400630 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400631 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400632 },
633 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400634 GPBDescriptor *localDescriptor =
635 [GPBDescriptor allocDescriptorForClass:[GPBEnumValue class]
636 rootClass:[GPBTypeRoot class]
637 file:GPBTypeRoot_FileDescriptor()
638 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400639 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400640 storageSize:sizeof(GPBEnumValue__storage_)
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400641 flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
Dave MacLachlanb6311762018-12-11 16:32:48 -0800642 #if defined(DEBUG) && DEBUG
643 NSAssert(descriptor == nil, @"Startup recursed!");
644 #endif // DEBUG
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400645 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400646 }
647 return descriptor;
648}
649
650@end
651
652#pragma mark - GPBOption
653
654@implementation GPBOption
655
656@dynamic name;
657@dynamic hasValue, value;
658
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400659typedef struct GPBOption__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400660 uint32_t _has_storage_[1];
661 NSString *name;
662 GPBAny *value;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400663} GPBOption__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400664
665// This method is threadsafe because it is initially called
666// in +initialize for each subclass.
667+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400668 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400669 if (!descriptor) {
670 static GPBMessageFieldDescription fields[] = {
671 {
672 .name = "name",
Dave MacLachlan74956e12019-12-17 17:32:09 -0800673 .dataTypeSpecific.clazz = Nil,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400674 .number = GPBOption_FieldNumber_Name,
675 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400676 .offset = (uint32_t)offsetof(GPBOption__storage_, name),
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400677 .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400678 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400679 },
680 {
681 .name = "value",
Dave MacLachlanaa1d7e72020-01-19 17:46:35 -0800682 .dataTypeSpecific.clazz = GPBObjCClass(GPBAny),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400683 .number = GPBOption_FieldNumber_Value,
684 .hasIndex = 1,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400685 .offset = (uint32_t)offsetof(GPBOption__storage_, value),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400686 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400687 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400688 },
689 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400690 GPBDescriptor *localDescriptor =
691 [GPBDescriptor allocDescriptorForClass:[GPBOption class]
692 rootClass:[GPBTypeRoot class]
693 file:GPBTypeRoot_FileDescriptor()
694 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400695 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400696 storageSize:sizeof(GPBOption__storage_)
Thomas Van Lentenb0e27922020-04-13 13:36:56 -0400697 flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
Dave MacLachlanb6311762018-12-11 16:32:48 -0800698 #if defined(DEBUG) && DEBUG
699 NSAssert(descriptor == nil, @"Startup recursed!");
700 #endif // DEBUG
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400701 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400702 }
703 return descriptor;
704}
705
706@end
707
708
Thomas Van Lentene664aa62016-04-19 13:13:04 -0400709#pragma clang diagnostic pop
710
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400711// @@protoc_insertion_point(global_scope)
Thomas Van Lenten7c646282022-09-19 13:19:31 -0400712
713// clange-format on