GPBType.pbobjc.m 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. // Generated by the protocol buffer compiler. DO NOT EDIT!
  2. // source: google/protobuf/type.proto
  3. #import "GPBProtocolBuffers_RuntimeSupport.h"
  4. #import "GPBType.pbobjc.h"
  5. #import <stdatomic.h>
  6. // @@protoc_insertion_point(imports)
  7. #pragma clang diagnostic push
  8. #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  9. #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
  10. #pragma mark - Objective C Class declarations
  11. // Forward declarations of Objective C classes that we can use as
  12. // static values in struct initializers.
  13. // We don't use [Foo class] because it is not a static value.
  14. GPBObjCClassDeclaration(GPBAny);
  15. GPBObjCClassDeclaration(GPBEnumValue);
  16. GPBObjCClassDeclaration(GPBField);
  17. GPBObjCClassDeclaration(GPBOption);
  18. GPBObjCClassDeclaration(GPBSourceContext);
  19. #pragma mark - GPBTypeRoot
  20. @implementation GPBTypeRoot
  21. // No extensions in the file and none of the imports (direct or indirect)
  22. // defined extensions, so no need to generate +extensionRegistry.
  23. @end
  24. #pragma mark - GPBTypeRoot_FileDescriptor
  25. static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
  26. // This is called by +initialize so there is no need to worry
  27. // about thread safety of the singleton.
  28. static GPBFileDescriptor *descriptor = NULL;
  29. if (!descriptor) {
  30. GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
  31. descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
  32. objcPrefix:@"GPB"
  33. syntax:GPBFileSyntaxProto3];
  34. }
  35. return descriptor;
  36. }
  37. #pragma mark - Enum GPBSyntax
  38. GPBEnumDescriptor *GPBSyntax_EnumDescriptor(void) {
  39. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  40. if (!descriptor) {
  41. static const char *valueNames =
  42. "SyntaxProto2\000SyntaxProto3\000";
  43. static const int32_t values[] = {
  44. GPBSyntax_SyntaxProto2,
  45. GPBSyntax_SyntaxProto3,
  46. };
  47. GPBEnumDescriptor *worker =
  48. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBSyntax)
  49. valueNames:valueNames
  50. values:values
  51. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  52. enumVerifier:GPBSyntax_IsValidValue];
  53. GPBEnumDescriptor *expected = nil;
  54. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  55. [worker release];
  56. }
  57. }
  58. return descriptor;
  59. }
  60. BOOL GPBSyntax_IsValidValue(int32_t value__) {
  61. switch (value__) {
  62. case GPBSyntax_SyntaxProto2:
  63. case GPBSyntax_SyntaxProto3:
  64. return YES;
  65. default:
  66. return NO;
  67. }
  68. }
  69. #pragma mark - GPBType
  70. @implementation GPBType
  71. @dynamic name;
  72. @dynamic fieldsArray, fieldsArray_Count;
  73. @dynamic oneofsArray, oneofsArray_Count;
  74. @dynamic optionsArray, optionsArray_Count;
  75. @dynamic hasSourceContext, sourceContext;
  76. @dynamic syntax;
  77. typedef struct GPBType__storage_ {
  78. uint32_t _has_storage_[1];
  79. GPBSyntax syntax;
  80. NSString *name;
  81. NSMutableArray *fieldsArray;
  82. NSMutableArray *oneofsArray;
  83. NSMutableArray *optionsArray;
  84. GPBSourceContext *sourceContext;
  85. } GPBType__storage_;
  86. // This method is threadsafe because it is initially called
  87. // in +initialize for each subclass.
  88. + (GPBDescriptor *)descriptor {
  89. static GPBDescriptor *descriptor = nil;
  90. if (!descriptor) {
  91. static GPBMessageFieldDescription fields[] = {
  92. {
  93. .name = "name",
  94. .dataTypeSpecific.clazz = Nil,
  95. .number = GPBType_FieldNumber_Name,
  96. .hasIndex = 0,
  97. .offset = (uint32_t)offsetof(GPBType__storage_, name),
  98. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  99. .dataType = GPBDataTypeString,
  100. },
  101. {
  102. .name = "fieldsArray",
  103. .dataTypeSpecific.clazz = GPBObjCClass(GPBField),
  104. .number = GPBType_FieldNumber_FieldsArray,
  105. .hasIndex = GPBNoHasBit,
  106. .offset = (uint32_t)offsetof(GPBType__storage_, fieldsArray),
  107. .flags = GPBFieldRepeated,
  108. .dataType = GPBDataTypeMessage,
  109. },
  110. {
  111. .name = "oneofsArray",
  112. .dataTypeSpecific.clazz = Nil,
  113. .number = GPBType_FieldNumber_OneofsArray,
  114. .hasIndex = GPBNoHasBit,
  115. .offset = (uint32_t)offsetof(GPBType__storage_, oneofsArray),
  116. .flags = GPBFieldRepeated,
  117. .dataType = GPBDataTypeString,
  118. },
  119. {
  120. .name = "optionsArray",
  121. .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
  122. .number = GPBType_FieldNumber_OptionsArray,
  123. .hasIndex = GPBNoHasBit,
  124. .offset = (uint32_t)offsetof(GPBType__storage_, optionsArray),
  125. .flags = GPBFieldRepeated,
  126. .dataType = GPBDataTypeMessage,
  127. },
  128. {
  129. .name = "sourceContext",
  130. .dataTypeSpecific.clazz = GPBObjCClass(GPBSourceContext),
  131. .number = GPBType_FieldNumber_SourceContext,
  132. .hasIndex = 1,
  133. .offset = (uint32_t)offsetof(GPBType__storage_, sourceContext),
  134. .flags = GPBFieldOptional,
  135. .dataType = GPBDataTypeMessage,
  136. },
  137. {
  138. .name = "syntax",
  139. .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
  140. .number = GPBType_FieldNumber_Syntax,
  141. .hasIndex = 2,
  142. .offset = (uint32_t)offsetof(GPBType__storage_, syntax),
  143. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
  144. .dataType = GPBDataTypeEnum,
  145. },
  146. };
  147. GPBDescriptor *localDescriptor =
  148. [GPBDescriptor allocDescriptorForClass:[GPBType class]
  149. rootClass:[GPBTypeRoot class]
  150. file:GPBTypeRoot_FileDescriptor()
  151. fields:fields
  152. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  153. storageSize:sizeof(GPBType__storage_)
  154. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  155. #if defined(DEBUG) && DEBUG
  156. NSAssert(descriptor == nil, @"Startup recursed!");
  157. #endif // DEBUG
  158. descriptor = localDescriptor;
  159. }
  160. return descriptor;
  161. }
  162. @end
  163. int32_t GPBType_Syntax_RawValue(GPBType *message) {
  164. GPBDescriptor *descriptor = [GPBType descriptor];
  165. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
  166. return GPBGetMessageRawEnumField(message, field);
  167. }
  168. void SetGPBType_Syntax_RawValue(GPBType *message, int32_t value) {
  169. GPBDescriptor *descriptor = [GPBType descriptor];
  170. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBType_FieldNumber_Syntax];
  171. GPBSetMessageRawEnumField(message, field, value);
  172. }
  173. #pragma mark - GPBField
  174. @implementation GPBField
  175. @dynamic kind;
  176. @dynamic cardinality;
  177. @dynamic number;
  178. @dynamic name;
  179. @dynamic typeURL;
  180. @dynamic oneofIndex;
  181. @dynamic packed;
  182. @dynamic optionsArray, optionsArray_Count;
  183. @dynamic jsonName;
  184. @dynamic defaultValue;
  185. typedef struct GPBField__storage_ {
  186. uint32_t _has_storage_[1];
  187. GPBField_Kind kind;
  188. GPBField_Cardinality cardinality;
  189. int32_t number;
  190. int32_t oneofIndex;
  191. NSString *name;
  192. NSString *typeURL;
  193. NSMutableArray *optionsArray;
  194. NSString *jsonName;
  195. NSString *defaultValue;
  196. } GPBField__storage_;
  197. // This method is threadsafe because it is initially called
  198. // in +initialize for each subclass.
  199. + (GPBDescriptor *)descriptor {
  200. static GPBDescriptor *descriptor = nil;
  201. if (!descriptor) {
  202. static GPBMessageFieldDescription fields[] = {
  203. {
  204. .name = "kind",
  205. .dataTypeSpecific.enumDescFunc = GPBField_Kind_EnumDescriptor,
  206. .number = GPBField_FieldNumber_Kind,
  207. .hasIndex = 0,
  208. .offset = (uint32_t)offsetof(GPBField__storage_, kind),
  209. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
  210. .dataType = GPBDataTypeEnum,
  211. },
  212. {
  213. .name = "cardinality",
  214. .dataTypeSpecific.enumDescFunc = GPBField_Cardinality_EnumDescriptor,
  215. .number = GPBField_FieldNumber_Cardinality,
  216. .hasIndex = 1,
  217. .offset = (uint32_t)offsetof(GPBField__storage_, cardinality),
  218. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
  219. .dataType = GPBDataTypeEnum,
  220. },
  221. {
  222. .name = "number",
  223. .dataTypeSpecific.clazz = Nil,
  224. .number = GPBField_FieldNumber_Number,
  225. .hasIndex = 2,
  226. .offset = (uint32_t)offsetof(GPBField__storage_, number),
  227. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  228. .dataType = GPBDataTypeInt32,
  229. },
  230. {
  231. .name = "name",
  232. .dataTypeSpecific.clazz = Nil,
  233. .number = GPBField_FieldNumber_Name,
  234. .hasIndex = 3,
  235. .offset = (uint32_t)offsetof(GPBField__storage_, name),
  236. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  237. .dataType = GPBDataTypeString,
  238. },
  239. {
  240. .name = "typeURL",
  241. .dataTypeSpecific.clazz = Nil,
  242. .number = GPBField_FieldNumber_TypeURL,
  243. .hasIndex = 4,
  244. .offset = (uint32_t)offsetof(GPBField__storage_, typeURL),
  245. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom | GPBFieldClearHasIvarOnZero),
  246. .dataType = GPBDataTypeString,
  247. },
  248. {
  249. .name = "oneofIndex",
  250. .dataTypeSpecific.clazz = Nil,
  251. .number = GPBField_FieldNumber_OneofIndex,
  252. .hasIndex = 5,
  253. .offset = (uint32_t)offsetof(GPBField__storage_, oneofIndex),
  254. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  255. .dataType = GPBDataTypeInt32,
  256. },
  257. {
  258. .name = "packed",
  259. .dataTypeSpecific.clazz = Nil,
  260. .number = GPBField_FieldNumber_Packed,
  261. .hasIndex = 6,
  262. .offset = 7, // Stored in _has_storage_ to save space.
  263. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  264. .dataType = GPBDataTypeBool,
  265. },
  266. {
  267. .name = "optionsArray",
  268. .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
  269. .number = GPBField_FieldNumber_OptionsArray,
  270. .hasIndex = GPBNoHasBit,
  271. .offset = (uint32_t)offsetof(GPBField__storage_, optionsArray),
  272. .flags = GPBFieldRepeated,
  273. .dataType = GPBDataTypeMessage,
  274. },
  275. {
  276. .name = "jsonName",
  277. .dataTypeSpecific.clazz = Nil,
  278. .number = GPBField_FieldNumber_JsonName,
  279. .hasIndex = 8,
  280. .offset = (uint32_t)offsetof(GPBField__storage_, jsonName),
  281. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  282. .dataType = GPBDataTypeString,
  283. },
  284. {
  285. .name = "defaultValue",
  286. .dataTypeSpecific.clazz = Nil,
  287. .number = GPBField_FieldNumber_DefaultValue,
  288. .hasIndex = 9,
  289. .offset = (uint32_t)offsetof(GPBField__storage_, defaultValue),
  290. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  291. .dataType = GPBDataTypeString,
  292. },
  293. };
  294. GPBDescriptor *localDescriptor =
  295. [GPBDescriptor allocDescriptorForClass:[GPBField class]
  296. rootClass:[GPBTypeRoot class]
  297. file:GPBTypeRoot_FileDescriptor()
  298. fields:fields
  299. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  300. storageSize:sizeof(GPBField__storage_)
  301. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  302. #if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  303. static const char *extraTextFormatInfo =
  304. "\001\006\004\241!!\000";
  305. [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
  306. #endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  307. #if defined(DEBUG) && DEBUG
  308. NSAssert(descriptor == nil, @"Startup recursed!");
  309. #endif // DEBUG
  310. descriptor = localDescriptor;
  311. }
  312. return descriptor;
  313. }
  314. @end
  315. int32_t GPBField_Kind_RawValue(GPBField *message) {
  316. GPBDescriptor *descriptor = [GPBField descriptor];
  317. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
  318. return GPBGetMessageRawEnumField(message, field);
  319. }
  320. void SetGPBField_Kind_RawValue(GPBField *message, int32_t value) {
  321. GPBDescriptor *descriptor = [GPBField descriptor];
  322. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
  323. GPBSetMessageRawEnumField(message, field, value);
  324. }
  325. int32_t GPBField_Cardinality_RawValue(GPBField *message) {
  326. GPBDescriptor *descriptor = [GPBField descriptor];
  327. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
  328. return GPBGetMessageRawEnumField(message, field);
  329. }
  330. void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) {
  331. GPBDescriptor *descriptor = [GPBField descriptor];
  332. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
  333. GPBSetMessageRawEnumField(message, field, value);
  334. }
  335. #pragma mark - Enum GPBField_Kind
  336. GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
  337. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  338. if (!descriptor) {
  339. static const char *valueNames =
  340. "TypeUnknown\000TypeDouble\000TypeFloat\000TypeInt"
  341. "64\000TypeUint64\000TypeInt32\000TypeFixed64\000Type"
  342. "Fixed32\000TypeBool\000TypeString\000TypeGroup\000Ty"
  343. "peMessage\000TypeBytes\000TypeUint32\000TypeEnum\000"
  344. "TypeSfixed32\000TypeSfixed64\000TypeSint32\000Typ"
  345. "eSint64\000";
  346. static const int32_t values[] = {
  347. GPBField_Kind_TypeUnknown,
  348. GPBField_Kind_TypeDouble,
  349. GPBField_Kind_TypeFloat,
  350. GPBField_Kind_TypeInt64,
  351. GPBField_Kind_TypeUint64,
  352. GPBField_Kind_TypeInt32,
  353. GPBField_Kind_TypeFixed64,
  354. GPBField_Kind_TypeFixed32,
  355. GPBField_Kind_TypeBool,
  356. GPBField_Kind_TypeString,
  357. GPBField_Kind_TypeGroup,
  358. GPBField_Kind_TypeMessage,
  359. GPBField_Kind_TypeBytes,
  360. GPBField_Kind_TypeUint32,
  361. GPBField_Kind_TypeEnum,
  362. GPBField_Kind_TypeSfixed32,
  363. GPBField_Kind_TypeSfixed64,
  364. GPBField_Kind_TypeSint32,
  365. GPBField_Kind_TypeSint64,
  366. };
  367. GPBEnumDescriptor *worker =
  368. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Kind)
  369. valueNames:valueNames
  370. values:values
  371. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  372. enumVerifier:GPBField_Kind_IsValidValue];
  373. GPBEnumDescriptor *expected = nil;
  374. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  375. [worker release];
  376. }
  377. }
  378. return descriptor;
  379. }
  380. BOOL GPBField_Kind_IsValidValue(int32_t value__) {
  381. switch (value__) {
  382. case GPBField_Kind_TypeUnknown:
  383. case GPBField_Kind_TypeDouble:
  384. case GPBField_Kind_TypeFloat:
  385. case GPBField_Kind_TypeInt64:
  386. case GPBField_Kind_TypeUint64:
  387. case GPBField_Kind_TypeInt32:
  388. case GPBField_Kind_TypeFixed64:
  389. case GPBField_Kind_TypeFixed32:
  390. case GPBField_Kind_TypeBool:
  391. case GPBField_Kind_TypeString:
  392. case GPBField_Kind_TypeGroup:
  393. case GPBField_Kind_TypeMessage:
  394. case GPBField_Kind_TypeBytes:
  395. case GPBField_Kind_TypeUint32:
  396. case GPBField_Kind_TypeEnum:
  397. case GPBField_Kind_TypeSfixed32:
  398. case GPBField_Kind_TypeSfixed64:
  399. case GPBField_Kind_TypeSint32:
  400. case GPBField_Kind_TypeSint64:
  401. return YES;
  402. default:
  403. return NO;
  404. }
  405. }
  406. #pragma mark - Enum GPBField_Cardinality
  407. GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) {
  408. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  409. if (!descriptor) {
  410. static const char *valueNames =
  411. "CardinalityUnknown\000CardinalityOptional\000C"
  412. "ardinalityRequired\000CardinalityRepeated\000";
  413. static const int32_t values[] = {
  414. GPBField_Cardinality_CardinalityUnknown,
  415. GPBField_Cardinality_CardinalityOptional,
  416. GPBField_Cardinality_CardinalityRequired,
  417. GPBField_Cardinality_CardinalityRepeated,
  418. };
  419. GPBEnumDescriptor *worker =
  420. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Cardinality)
  421. valueNames:valueNames
  422. values:values
  423. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  424. enumVerifier:GPBField_Cardinality_IsValidValue];
  425. GPBEnumDescriptor *expected = nil;
  426. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  427. [worker release];
  428. }
  429. }
  430. return descriptor;
  431. }
  432. BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
  433. switch (value__) {
  434. case GPBField_Cardinality_CardinalityUnknown:
  435. case GPBField_Cardinality_CardinalityOptional:
  436. case GPBField_Cardinality_CardinalityRequired:
  437. case GPBField_Cardinality_CardinalityRepeated:
  438. return YES;
  439. default:
  440. return NO;
  441. }
  442. }
  443. #pragma mark - GPBEnum
  444. @implementation GPBEnum
  445. @dynamic name;
  446. @dynamic enumvalueArray, enumvalueArray_Count;
  447. @dynamic optionsArray, optionsArray_Count;
  448. @dynamic hasSourceContext, sourceContext;
  449. @dynamic syntax;
  450. typedef struct GPBEnum__storage_ {
  451. uint32_t _has_storage_[1];
  452. GPBSyntax syntax;
  453. NSString *name;
  454. NSMutableArray *enumvalueArray;
  455. NSMutableArray *optionsArray;
  456. GPBSourceContext *sourceContext;
  457. } GPBEnum__storage_;
  458. // This method is threadsafe because it is initially called
  459. // in +initialize for each subclass.
  460. + (GPBDescriptor *)descriptor {
  461. static GPBDescriptor *descriptor = nil;
  462. if (!descriptor) {
  463. static GPBMessageFieldDescription fields[] = {
  464. {
  465. .name = "name",
  466. .dataTypeSpecific.clazz = Nil,
  467. .number = GPBEnum_FieldNumber_Name,
  468. .hasIndex = 0,
  469. .offset = (uint32_t)offsetof(GPBEnum__storage_, name),
  470. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  471. .dataType = GPBDataTypeString,
  472. },
  473. {
  474. .name = "enumvalueArray",
  475. .dataTypeSpecific.clazz = GPBObjCClass(GPBEnumValue),
  476. .number = GPBEnum_FieldNumber_EnumvalueArray,
  477. .hasIndex = GPBNoHasBit,
  478. .offset = (uint32_t)offsetof(GPBEnum__storage_, enumvalueArray),
  479. .flags = GPBFieldRepeated,
  480. .dataType = GPBDataTypeMessage,
  481. },
  482. {
  483. .name = "optionsArray",
  484. .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
  485. .number = GPBEnum_FieldNumber_OptionsArray,
  486. .hasIndex = GPBNoHasBit,
  487. .offset = (uint32_t)offsetof(GPBEnum__storage_, optionsArray),
  488. .flags = GPBFieldRepeated,
  489. .dataType = GPBDataTypeMessage,
  490. },
  491. {
  492. .name = "sourceContext",
  493. .dataTypeSpecific.clazz = GPBObjCClass(GPBSourceContext),
  494. .number = GPBEnum_FieldNumber_SourceContext,
  495. .hasIndex = 1,
  496. .offset = (uint32_t)offsetof(GPBEnum__storage_, sourceContext),
  497. .flags = GPBFieldOptional,
  498. .dataType = GPBDataTypeMessage,
  499. },
  500. {
  501. .name = "syntax",
  502. .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
  503. .number = GPBEnum_FieldNumber_Syntax,
  504. .hasIndex = 2,
  505. .offset = (uint32_t)offsetof(GPBEnum__storage_, syntax),
  506. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor | GPBFieldClearHasIvarOnZero),
  507. .dataType = GPBDataTypeEnum,
  508. },
  509. };
  510. GPBDescriptor *localDescriptor =
  511. [GPBDescriptor allocDescriptorForClass:[GPBEnum class]
  512. rootClass:[GPBTypeRoot class]
  513. file:GPBTypeRoot_FileDescriptor()
  514. fields:fields
  515. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  516. storageSize:sizeof(GPBEnum__storage_)
  517. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  518. #if defined(DEBUG) && DEBUG
  519. NSAssert(descriptor == nil, @"Startup recursed!");
  520. #endif // DEBUG
  521. descriptor = localDescriptor;
  522. }
  523. return descriptor;
  524. }
  525. @end
  526. int32_t GPBEnum_Syntax_RawValue(GPBEnum *message) {
  527. GPBDescriptor *descriptor = [GPBEnum descriptor];
  528. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
  529. return GPBGetMessageRawEnumField(message, field);
  530. }
  531. void SetGPBEnum_Syntax_RawValue(GPBEnum *message, int32_t value) {
  532. GPBDescriptor *descriptor = [GPBEnum descriptor];
  533. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBEnum_FieldNumber_Syntax];
  534. GPBSetMessageRawEnumField(message, field, value);
  535. }
  536. #pragma mark - GPBEnumValue
  537. @implementation GPBEnumValue
  538. @dynamic name;
  539. @dynamic number;
  540. @dynamic optionsArray, optionsArray_Count;
  541. typedef struct GPBEnumValue__storage_ {
  542. uint32_t _has_storage_[1];
  543. int32_t number;
  544. NSString *name;
  545. NSMutableArray *optionsArray;
  546. } GPBEnumValue__storage_;
  547. // This method is threadsafe because it is initially called
  548. // in +initialize for each subclass.
  549. + (GPBDescriptor *)descriptor {
  550. static GPBDescriptor *descriptor = nil;
  551. if (!descriptor) {
  552. static GPBMessageFieldDescription fields[] = {
  553. {
  554. .name = "name",
  555. .dataTypeSpecific.clazz = Nil,
  556. .number = GPBEnumValue_FieldNumber_Name,
  557. .hasIndex = 0,
  558. .offset = (uint32_t)offsetof(GPBEnumValue__storage_, name),
  559. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  560. .dataType = GPBDataTypeString,
  561. },
  562. {
  563. .name = "number",
  564. .dataTypeSpecific.clazz = Nil,
  565. .number = GPBEnumValue_FieldNumber_Number,
  566. .hasIndex = 1,
  567. .offset = (uint32_t)offsetof(GPBEnumValue__storage_, number),
  568. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  569. .dataType = GPBDataTypeInt32,
  570. },
  571. {
  572. .name = "optionsArray",
  573. .dataTypeSpecific.clazz = GPBObjCClass(GPBOption),
  574. .number = GPBEnumValue_FieldNumber_OptionsArray,
  575. .hasIndex = GPBNoHasBit,
  576. .offset = (uint32_t)offsetof(GPBEnumValue__storage_, optionsArray),
  577. .flags = GPBFieldRepeated,
  578. .dataType = GPBDataTypeMessage,
  579. },
  580. };
  581. GPBDescriptor *localDescriptor =
  582. [GPBDescriptor allocDescriptorForClass:[GPBEnumValue class]
  583. rootClass:[GPBTypeRoot class]
  584. file:GPBTypeRoot_FileDescriptor()
  585. fields:fields
  586. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  587. storageSize:sizeof(GPBEnumValue__storage_)
  588. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  589. #if defined(DEBUG) && DEBUG
  590. NSAssert(descriptor == nil, @"Startup recursed!");
  591. #endif // DEBUG
  592. descriptor = localDescriptor;
  593. }
  594. return descriptor;
  595. }
  596. @end
  597. #pragma mark - GPBOption
  598. @implementation GPBOption
  599. @dynamic name;
  600. @dynamic hasValue, value;
  601. typedef struct GPBOption__storage_ {
  602. uint32_t _has_storage_[1];
  603. NSString *name;
  604. GPBAny *value;
  605. } GPBOption__storage_;
  606. // This method is threadsafe because it is initially called
  607. // in +initialize for each subclass.
  608. + (GPBDescriptor *)descriptor {
  609. static GPBDescriptor *descriptor = nil;
  610. if (!descriptor) {
  611. static GPBMessageFieldDescription fields[] = {
  612. {
  613. .name = "name",
  614. .dataTypeSpecific.clazz = Nil,
  615. .number = GPBOption_FieldNumber_Name,
  616. .hasIndex = 0,
  617. .offset = (uint32_t)offsetof(GPBOption__storage_, name),
  618. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldClearHasIvarOnZero),
  619. .dataType = GPBDataTypeString,
  620. },
  621. {
  622. .name = "value",
  623. .dataTypeSpecific.clazz = GPBObjCClass(GPBAny),
  624. .number = GPBOption_FieldNumber_Value,
  625. .hasIndex = 1,
  626. .offset = (uint32_t)offsetof(GPBOption__storage_, value),
  627. .flags = GPBFieldOptional,
  628. .dataType = GPBDataTypeMessage,
  629. },
  630. };
  631. GPBDescriptor *localDescriptor =
  632. [GPBDescriptor allocDescriptorForClass:[GPBOption class]
  633. rootClass:[GPBTypeRoot class]
  634. file:GPBTypeRoot_FileDescriptor()
  635. fields:fields
  636. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  637. storageSize:sizeof(GPBOption__storage_)
  638. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  639. #if defined(DEBUG) && DEBUG
  640. NSAssert(descriptor == nil, @"Startup recursed!");
  641. #endif // DEBUG
  642. descriptor = localDescriptor;
  643. }
  644. return descriptor;
  645. }
  646. @end
  647. #pragma clang diagnostic pop
  648. // @@protoc_insertion_point(global_scope)