GPBType.pbobjc.m 27 KB

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