Type.pbobjc.m 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. // Generated by the protocol buffer compiler. DO NOT EDIT!
  2. // source: google/protobuf/type.proto
  3. #import "GPBProtocolBuffers_RuntimeSupport.h"
  4. #import "google/protobuf/Type.pbobjc.h"
  5. #import "google/protobuf/Any.pbobjc.h"
  6. #import "google/protobuf/SourceContext.pbobjc.h"
  7. // @@protoc_insertion_point(imports)
  8. #pragma mark - GPBTypeRoot
  9. @implementation GPBTypeRoot
  10. + (GPBExtensionRegistry*)extensionRegistry {
  11. // This is called by +initialize so there is no need to worry
  12. // about thread safety and initialization of registry.
  13. static GPBExtensionRegistry* registry = nil;
  14. if (!registry) {
  15. registry = [[GPBExtensionRegistry alloc] init];
  16. static GPBExtensionDescription descriptions[] = {
  17. };
  18. #pragma unused (descriptions)
  19. [registry addExtensions:[GPBAnyRoot extensionRegistry]];
  20. [registry addExtensions:[GPBSourceContextRoot extensionRegistry]];
  21. }
  22. return registry;
  23. }
  24. @end
  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. descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
  31. syntax:GPBFileSyntaxProto3];
  32. }
  33. return descriptor;
  34. }
  35. #pragma mark - GPBType
  36. @implementation GPBType
  37. @dynamic name;
  38. @dynamic fieldsArray;
  39. @dynamic oneofsArray;
  40. @dynamic optionsArray;
  41. @dynamic hasSourceContext, sourceContext;
  42. typedef struct GPBType_Storage {
  43. uint32_t _has_storage_[1];
  44. NSString *name;
  45. NSMutableArray *fieldsArray;
  46. NSMutableArray *oneofsArray;
  47. NSMutableArray *optionsArray;
  48. GPBSourceContext *sourceContext;
  49. } GPBType_Storage;
  50. // This method is threadsafe because it is initially called
  51. // in +initialize for each subclass.
  52. + (GPBDescriptor *)descriptor {
  53. static GPBDescriptor *descriptor = NULL;
  54. if (!descriptor) {
  55. static GPBMessageFieldDescription fields[] = {
  56. {
  57. .name = "name",
  58. .number = GPBType_FieldNumber_Name,
  59. .hasIndex = 0,
  60. .flags = GPBFieldOptional,
  61. .type = GPBTypeString,
  62. .offset = offsetof(GPBType_Storage, name),
  63. .defaultValue.valueString = nil,
  64. .typeSpecific.className = NULL,
  65. .fieldOptions = NULL,
  66. },
  67. {
  68. .name = "fieldsArray",
  69. .number = GPBType_FieldNumber_FieldsArray,
  70. .hasIndex = GPBNoHasBit,
  71. .flags = GPBFieldRepeated,
  72. .type = GPBTypeMessage,
  73. .offset = offsetof(GPBType_Storage, fieldsArray),
  74. .defaultValue.valueMessage = nil,
  75. .typeSpecific.className = GPBStringifySymbol(GPBField),
  76. .fieldOptions = NULL,
  77. },
  78. {
  79. .name = "oneofsArray",
  80. .number = GPBType_FieldNumber_OneofsArray,
  81. .hasIndex = GPBNoHasBit,
  82. .flags = GPBFieldRepeated,
  83. .type = GPBTypeString,
  84. .offset = offsetof(GPBType_Storage, oneofsArray),
  85. .defaultValue.valueMessage = nil,
  86. .typeSpecific.className = NULL,
  87. .fieldOptions = NULL,
  88. },
  89. {
  90. .name = "optionsArray",
  91. .number = GPBType_FieldNumber_OptionsArray,
  92. .hasIndex = GPBNoHasBit,
  93. .flags = GPBFieldRepeated,
  94. .type = GPBTypeMessage,
  95. .offset = offsetof(GPBType_Storage, optionsArray),
  96. .defaultValue.valueMessage = nil,
  97. .typeSpecific.className = GPBStringifySymbol(GPBOption),
  98. .fieldOptions = NULL,
  99. },
  100. {
  101. .name = "sourceContext",
  102. .number = GPBType_FieldNumber_SourceContext,
  103. .hasIndex = 4,
  104. .flags = GPBFieldOptional,
  105. .type = GPBTypeMessage,
  106. .offset = offsetof(GPBType_Storage, sourceContext),
  107. .defaultValue.valueMessage = nil,
  108. .typeSpecific.className = GPBStringifySymbol(GPBSourceContext),
  109. .fieldOptions = NULL,
  110. },
  111. };
  112. descriptor = [GPBDescriptor allocDescriptorForClass:[GPBType class]
  113. rootClass:[GPBTypeRoot class]
  114. file:GPBTypeRoot_FileDescriptor()
  115. fields:fields
  116. fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
  117. oneofs:NULL
  118. oneofCount:0
  119. enums:NULL
  120. enumCount:0
  121. ranges:NULL
  122. rangeCount:0
  123. storageSize:sizeof(GPBType_Storage)
  124. wireFormat:NO];
  125. }
  126. return descriptor;
  127. }
  128. @end
  129. #pragma mark - GPBField
  130. @implementation GPBField
  131. @dynamic kind;
  132. @dynamic cardinality;
  133. @dynamic number;
  134. @dynamic name;
  135. @dynamic typeURL;
  136. @dynamic oneofIndex;
  137. @dynamic packed;
  138. @dynamic optionsArray;
  139. typedef struct GPBField_Storage {
  140. uint32_t _has_storage_[1];
  141. BOOL packed;
  142. GPBField_Kind kind;
  143. GPBField_Cardinality cardinality;
  144. int32_t number;
  145. int32_t oneofIndex;
  146. NSString *name;
  147. NSString *typeURL;
  148. NSMutableArray *optionsArray;
  149. } GPBField_Storage;
  150. // This method is threadsafe because it is initially called
  151. // in +initialize for each subclass.
  152. + (GPBDescriptor *)descriptor {
  153. static GPBDescriptor *descriptor = NULL;
  154. if (!descriptor) {
  155. static GPBMessageFieldDescription fields[] = {
  156. {
  157. .name = "kind",
  158. .number = GPBField_FieldNumber_Kind,
  159. .hasIndex = 0,
  160. .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
  161. .type = GPBTypeEnum,
  162. .offset = offsetof(GPBField_Storage, kind),
  163. .defaultValue.valueEnum = GPBField_Kind_TypeUnknown,
  164. .typeSpecific.enumDescFunc = GPBField_Kind_EnumDescriptor,
  165. .fieldOptions = NULL,
  166. },
  167. {
  168. .name = "cardinality",
  169. .number = GPBField_FieldNumber_Cardinality,
  170. .hasIndex = 1,
  171. .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
  172. .type = GPBTypeEnum,
  173. .offset = offsetof(GPBField_Storage, cardinality),
  174. .defaultValue.valueEnum = GPBField_Cardinality_CardinalityUnknown,
  175. .typeSpecific.enumDescFunc = GPBField_Cardinality_EnumDescriptor,
  176. .fieldOptions = NULL,
  177. },
  178. {
  179. .name = "number",
  180. .number = GPBField_FieldNumber_Number,
  181. .hasIndex = 2,
  182. .flags = GPBFieldOptional,
  183. .type = GPBTypeInt32,
  184. .offset = offsetof(GPBField_Storage, number),
  185. .defaultValue.valueInt32 = 0,
  186. .typeSpecific.className = NULL,
  187. .fieldOptions = NULL,
  188. },
  189. {
  190. .name = "name",
  191. .number = GPBField_FieldNumber_Name,
  192. .hasIndex = 3,
  193. .flags = GPBFieldOptional,
  194. .type = GPBTypeString,
  195. .offset = offsetof(GPBField_Storage, name),
  196. .defaultValue.valueString = nil,
  197. .typeSpecific.className = NULL,
  198. .fieldOptions = NULL,
  199. },
  200. {
  201. .name = "typeURL",
  202. .number = GPBField_FieldNumber_TypeURL,
  203. .hasIndex = 4,
  204. .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
  205. .type = GPBTypeString,
  206. .offset = offsetof(GPBField_Storage, typeURL),
  207. .defaultValue.valueString = nil,
  208. .typeSpecific.className = NULL,
  209. .fieldOptions = NULL,
  210. },
  211. {
  212. .name = "oneofIndex",
  213. .number = GPBField_FieldNumber_OneofIndex,
  214. .hasIndex = 5,
  215. .flags = GPBFieldOptional,
  216. .type = GPBTypeInt32,
  217. .offset = offsetof(GPBField_Storage, oneofIndex),
  218. .defaultValue.valueInt32 = 0,
  219. .typeSpecific.className = NULL,
  220. .fieldOptions = NULL,
  221. },
  222. {
  223. .name = "packed",
  224. .number = GPBField_FieldNumber_Packed,
  225. .hasIndex = 6,
  226. .flags = GPBFieldOptional,
  227. .type = GPBTypeBool,
  228. .offset = offsetof(GPBField_Storage, packed),
  229. .defaultValue.valueBool = NO,
  230. .typeSpecific.className = NULL,
  231. .fieldOptions = NULL,
  232. },
  233. {
  234. .name = "optionsArray",
  235. .number = GPBField_FieldNumber_OptionsArray,
  236. .hasIndex = GPBNoHasBit,
  237. .flags = GPBFieldRepeated,
  238. .type = GPBTypeMessage,
  239. .offset = offsetof(GPBField_Storage, optionsArray),
  240. .defaultValue.valueMessage = nil,
  241. .typeSpecific.className = GPBStringifySymbol(GPBOption),
  242. .fieldOptions = NULL,
  243. },
  244. };
  245. static GPBMessageEnumDescription enums[] = {
  246. { .enumDescriptorFunc = GPBField_Kind_EnumDescriptor },
  247. { .enumDescriptorFunc = GPBField_Cardinality_EnumDescriptor },
  248. };
  249. #if GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  250. const char *extraTextFormatInfo = NULL;
  251. #else
  252. static const char *extraTextFormatInfo = "\001\006\004\241!!\000";
  253. #endif // GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  254. descriptor = [GPBDescriptor allocDescriptorForClass:[GPBField class]
  255. rootClass:[GPBTypeRoot class]
  256. file:GPBTypeRoot_FileDescriptor()
  257. fields:fields
  258. fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
  259. oneofs:NULL
  260. oneofCount:0
  261. enums:enums
  262. enumCount:sizeof(enums) / sizeof(GPBMessageEnumDescription)
  263. ranges:NULL
  264. rangeCount:0
  265. storageSize:sizeof(GPBField_Storage)
  266. wireFormat:NO
  267. extraTextFormatInfo:extraTextFormatInfo];
  268. }
  269. return descriptor;
  270. }
  271. @end
  272. int32_t GPBField_Kind_RawValue(GPBField *message) {
  273. GPBDescriptor *descriptor = [GPBField descriptor];
  274. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
  275. return GPBGetInt32IvarWithField(message, field);
  276. }
  277. void SetGPBField_Kind_RawValue(GPBField *message, int32_t value) {
  278. GPBDescriptor *descriptor = [GPBField descriptor];
  279. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
  280. GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
  281. }
  282. int32_t GPBField_Cardinality_RawValue(GPBField *message) {
  283. GPBDescriptor *descriptor = [GPBField descriptor];
  284. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
  285. return GPBGetInt32IvarWithField(message, field);
  286. }
  287. void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) {
  288. GPBDescriptor *descriptor = [GPBField descriptor];
  289. GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
  290. GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
  291. }
  292. #pragma mark - Enum GPBField_Kind
  293. GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
  294. static GPBEnumDescriptor *descriptor = NULL;
  295. if (!descriptor) {
  296. static GPBMessageEnumValueDescription values[] = {
  297. { .name = "TypeUnknown", .number = GPBField_Kind_TypeUnknown },
  298. { .name = "TypeDouble", .number = GPBField_Kind_TypeDouble },
  299. { .name = "TypeFloat", .number = GPBField_Kind_TypeFloat },
  300. { .name = "TypeInt64", .number = GPBField_Kind_TypeInt64 },
  301. { .name = "TypeUint64", .number = GPBField_Kind_TypeUint64 },
  302. { .name = "TypeInt32", .number = GPBField_Kind_TypeInt32 },
  303. { .name = "TypeFixed64", .number = GPBField_Kind_TypeFixed64 },
  304. { .name = "TypeFixed32", .number = GPBField_Kind_TypeFixed32 },
  305. { .name = "TypeBool", .number = GPBField_Kind_TypeBool },
  306. { .name = "TypeString", .number = GPBField_Kind_TypeString },
  307. { .name = "TypeMessage", .number = GPBField_Kind_TypeMessage },
  308. { .name = "TypeBytes", .number = GPBField_Kind_TypeBytes },
  309. { .name = "TypeUint32", .number = GPBField_Kind_TypeUint32 },
  310. { .name = "TypeEnum", .number = GPBField_Kind_TypeEnum },
  311. { .name = "TypeSfixed32", .number = GPBField_Kind_TypeSfixed32 },
  312. { .name = "TypeSfixed64", .number = GPBField_Kind_TypeSfixed64 },
  313. { .name = "TypeSint32", .number = GPBField_Kind_TypeSint32 },
  314. { .name = "TypeSint64", .number = GPBField_Kind_TypeSint64 },
  315. };
  316. descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Kind)
  317. values:values
  318. valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
  319. enumVerifier:GPBField_Kind_IsValidValue];
  320. }
  321. return descriptor;
  322. }
  323. BOOL GPBField_Kind_IsValidValue(int32_t value__) {
  324. switch (value__) {
  325. case GPBField_Kind_TypeUnknown:
  326. case GPBField_Kind_TypeDouble:
  327. case GPBField_Kind_TypeFloat:
  328. case GPBField_Kind_TypeInt64:
  329. case GPBField_Kind_TypeUint64:
  330. case GPBField_Kind_TypeInt32:
  331. case GPBField_Kind_TypeFixed64:
  332. case GPBField_Kind_TypeFixed32:
  333. case GPBField_Kind_TypeBool:
  334. case GPBField_Kind_TypeString:
  335. case GPBField_Kind_TypeMessage:
  336. case GPBField_Kind_TypeBytes:
  337. case GPBField_Kind_TypeUint32:
  338. case GPBField_Kind_TypeEnum:
  339. case GPBField_Kind_TypeSfixed32:
  340. case GPBField_Kind_TypeSfixed64:
  341. case GPBField_Kind_TypeSint32:
  342. case GPBField_Kind_TypeSint64:
  343. return YES;
  344. default:
  345. return NO;
  346. }
  347. }
  348. #pragma mark - Enum GPBField_Cardinality
  349. GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) {
  350. static GPBEnumDescriptor *descriptor = NULL;
  351. if (!descriptor) {
  352. static GPBMessageEnumValueDescription values[] = {
  353. { .name = "CardinalityUnknown", .number = GPBField_Cardinality_CardinalityUnknown },
  354. { .name = "CardinalityOptional", .number = GPBField_Cardinality_CardinalityOptional },
  355. { .name = "CardinalityRequired", .number = GPBField_Cardinality_CardinalityRequired },
  356. { .name = "CardinalityRepeated", .number = GPBField_Cardinality_CardinalityRepeated },
  357. };
  358. descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Cardinality)
  359. values:values
  360. valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
  361. enumVerifier:GPBField_Cardinality_IsValidValue];
  362. }
  363. return descriptor;
  364. }
  365. BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
  366. switch (value__) {
  367. case GPBField_Cardinality_CardinalityUnknown:
  368. case GPBField_Cardinality_CardinalityOptional:
  369. case GPBField_Cardinality_CardinalityRequired:
  370. case GPBField_Cardinality_CardinalityRepeated:
  371. return YES;
  372. default:
  373. return NO;
  374. }
  375. }
  376. #pragma mark - GPBEnum
  377. @implementation GPBEnum
  378. @dynamic name;
  379. @dynamic enumvalueArray;
  380. @dynamic optionsArray;
  381. @dynamic hasSourceContext, sourceContext;
  382. typedef struct GPBEnum_Storage {
  383. uint32_t _has_storage_[1];
  384. NSString *name;
  385. NSMutableArray *enumvalueArray;
  386. NSMutableArray *optionsArray;
  387. GPBSourceContext *sourceContext;
  388. } GPBEnum_Storage;
  389. // This method is threadsafe because it is initially called
  390. // in +initialize for each subclass.
  391. + (GPBDescriptor *)descriptor {
  392. static GPBDescriptor *descriptor = NULL;
  393. if (!descriptor) {
  394. static GPBMessageFieldDescription fields[] = {
  395. {
  396. .name = "name",
  397. .number = GPBEnum_FieldNumber_Name,
  398. .hasIndex = 0,
  399. .flags = GPBFieldOptional,
  400. .type = GPBTypeString,
  401. .offset = offsetof(GPBEnum_Storage, name),
  402. .defaultValue.valueString = nil,
  403. .typeSpecific.className = NULL,
  404. .fieldOptions = NULL,
  405. },
  406. {
  407. .name = "enumvalueArray",
  408. .number = GPBEnum_FieldNumber_EnumvalueArray,
  409. .hasIndex = GPBNoHasBit,
  410. .flags = GPBFieldRepeated,
  411. .type = GPBTypeMessage,
  412. .offset = offsetof(GPBEnum_Storage, enumvalueArray),
  413. .defaultValue.valueMessage = nil,
  414. .typeSpecific.className = GPBStringifySymbol(GPBEnumValue),
  415. .fieldOptions = NULL,
  416. },
  417. {
  418. .name = "optionsArray",
  419. .number = GPBEnum_FieldNumber_OptionsArray,
  420. .hasIndex = GPBNoHasBit,
  421. .flags = GPBFieldRepeated,
  422. .type = GPBTypeMessage,
  423. .offset = offsetof(GPBEnum_Storage, optionsArray),
  424. .defaultValue.valueMessage = nil,
  425. .typeSpecific.className = GPBStringifySymbol(GPBOption),
  426. .fieldOptions = NULL,
  427. },
  428. {
  429. .name = "sourceContext",
  430. .number = GPBEnum_FieldNumber_SourceContext,
  431. .hasIndex = 3,
  432. .flags = GPBFieldOptional,
  433. .type = GPBTypeMessage,
  434. .offset = offsetof(GPBEnum_Storage, sourceContext),
  435. .defaultValue.valueMessage = nil,
  436. .typeSpecific.className = GPBStringifySymbol(GPBSourceContext),
  437. .fieldOptions = NULL,
  438. },
  439. };
  440. descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnum class]
  441. rootClass:[GPBTypeRoot class]
  442. file:GPBTypeRoot_FileDescriptor()
  443. fields:fields
  444. fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
  445. oneofs:NULL
  446. oneofCount:0
  447. enums:NULL
  448. enumCount:0
  449. ranges:NULL
  450. rangeCount:0
  451. storageSize:sizeof(GPBEnum_Storage)
  452. wireFormat:NO];
  453. }
  454. return descriptor;
  455. }
  456. @end
  457. #pragma mark - GPBEnumValue
  458. @implementation GPBEnumValue
  459. @dynamic name;
  460. @dynamic number;
  461. @dynamic optionsArray;
  462. typedef struct GPBEnumValue_Storage {
  463. uint32_t _has_storage_[1];
  464. int32_t number;
  465. NSString *name;
  466. NSMutableArray *optionsArray;
  467. } GPBEnumValue_Storage;
  468. // This method is threadsafe because it is initially called
  469. // in +initialize for each subclass.
  470. + (GPBDescriptor *)descriptor {
  471. static GPBDescriptor *descriptor = NULL;
  472. if (!descriptor) {
  473. static GPBMessageFieldDescription fields[] = {
  474. {
  475. .name = "name",
  476. .number = GPBEnumValue_FieldNumber_Name,
  477. .hasIndex = 0,
  478. .flags = GPBFieldOptional,
  479. .type = GPBTypeString,
  480. .offset = offsetof(GPBEnumValue_Storage, name),
  481. .defaultValue.valueString = nil,
  482. .typeSpecific.className = NULL,
  483. .fieldOptions = NULL,
  484. },
  485. {
  486. .name = "number",
  487. .number = GPBEnumValue_FieldNumber_Number,
  488. .hasIndex = 1,
  489. .flags = GPBFieldOptional,
  490. .type = GPBTypeInt32,
  491. .offset = offsetof(GPBEnumValue_Storage, number),
  492. .defaultValue.valueInt32 = 0,
  493. .typeSpecific.className = NULL,
  494. .fieldOptions = NULL,
  495. },
  496. {
  497. .name = "optionsArray",
  498. .number = GPBEnumValue_FieldNumber_OptionsArray,
  499. .hasIndex = GPBNoHasBit,
  500. .flags = GPBFieldRepeated,
  501. .type = GPBTypeMessage,
  502. .offset = offsetof(GPBEnumValue_Storage, optionsArray),
  503. .defaultValue.valueMessage = nil,
  504. .typeSpecific.className = GPBStringifySymbol(GPBOption),
  505. .fieldOptions = NULL,
  506. },
  507. };
  508. descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumValue class]
  509. rootClass:[GPBTypeRoot class]
  510. file:GPBTypeRoot_FileDescriptor()
  511. fields:fields
  512. fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
  513. oneofs:NULL
  514. oneofCount:0
  515. enums:NULL
  516. enumCount:0
  517. ranges:NULL
  518. rangeCount:0
  519. storageSize:sizeof(GPBEnumValue_Storage)
  520. wireFormat:NO];
  521. }
  522. return descriptor;
  523. }
  524. @end
  525. #pragma mark - GPBOption
  526. @implementation GPBOption
  527. @dynamic name;
  528. @dynamic hasValue, value;
  529. typedef struct GPBOption_Storage {
  530. uint32_t _has_storage_[1];
  531. NSString *name;
  532. GPBAny *value;
  533. } GPBOption_Storage;
  534. // This method is threadsafe because it is initially called
  535. // in +initialize for each subclass.
  536. + (GPBDescriptor *)descriptor {
  537. static GPBDescriptor *descriptor = NULL;
  538. if (!descriptor) {
  539. static GPBMessageFieldDescription fields[] = {
  540. {
  541. .name = "name",
  542. .number = GPBOption_FieldNumber_Name,
  543. .hasIndex = 0,
  544. .flags = GPBFieldOptional,
  545. .type = GPBTypeString,
  546. .offset = offsetof(GPBOption_Storage, name),
  547. .defaultValue.valueString = nil,
  548. .typeSpecific.className = NULL,
  549. .fieldOptions = NULL,
  550. },
  551. {
  552. .name = "value",
  553. .number = GPBOption_FieldNumber_Value,
  554. .hasIndex = 1,
  555. .flags = GPBFieldOptional,
  556. .type = GPBTypeMessage,
  557. .offset = offsetof(GPBOption_Storage, value),
  558. .defaultValue.valueMessage = nil,
  559. .typeSpecific.className = GPBStringifySymbol(GPBAny),
  560. .fieldOptions = NULL,
  561. },
  562. };
  563. descriptor = [GPBDescriptor allocDescriptorForClass:[GPBOption class]
  564. rootClass:[GPBTypeRoot class]
  565. file:GPBTypeRoot_FileDescriptor()
  566. fields:fields
  567. fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
  568. oneofs:NULL
  569. oneofCount:0
  570. enums:NULL
  571. enumCount:0
  572. ranges:NULL
  573. rangeCount:0
  574. storageSize:sizeof(GPBOption_Storage)
  575. wireFormat:NO];
  576. }
  577. return descriptor;
  578. }
  579. @end
  580. // @@protoc_insertion_point(global_scope)