Type.pbobjc.m 24 KB

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