Config.pbobjc.m 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  1. /*
  2. * Copyright 2019 Google
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. // Generated by the protocol buffer compiler. DO NOT EDIT!
  17. // source: wireless/android/config/proto/config.proto
  18. // This CPP symbol can be defined to use imports that match up to the framework
  19. // imports needed when using CocoaPods.
  20. #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
  21. #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
  22. #endif
  23. #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
  24. #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
  25. #else
  26. #import "GPBProtocolBuffers_RuntimeSupport.h"
  27. #endif
  28. #import <stdatomic.h>
  29. #import "FirebaseRemoteConfig/Sources/Protos/wireless/android/config/proto/Config.pbobjc.h"
  30. //#import "FirebaseRemoteConfig/Sources/Protos/logs/wireless/android/AndroidConfig.pbobjc.h"
  31. // @@protoc_insertion_point(imports)
  32. #pragma clang diagnostic push
  33. #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  34. #pragma mark - RCNConfigRoot
  35. @implementation RCNConfigRoot
  36. // No extensions in the file and none of the imports (direct or indirect)
  37. // defined extensions, so no need to generate +extensionRegistry.
  38. @end
  39. #pragma mark - RCNConfigRoot_FileDescriptor
  40. static GPBFileDescriptor *RCNConfigRoot_FileDescriptor(void) {
  41. // This is called by +initialize so there is no need to worry
  42. // about thread safety of the singleton.
  43. static GPBFileDescriptor *descriptor = NULL;
  44. if (!descriptor) {
  45. GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
  46. descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"android.config"
  47. objcPrefix:@"RCN"
  48. syntax:GPBFileSyntaxProto2];
  49. }
  50. return descriptor;
  51. }
  52. #pragma mark - Enum RCNConfigDeviceType
  53. GPBEnumDescriptor *RCNConfigDeviceType_EnumDescriptor(void) {
  54. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  55. if (!descriptor) {
  56. static const char *valueNames =
  57. "Unknown\000Android\000Ios\000ChromeBrowser\000Chrome"
  58. "Os\000Desktop\000";
  59. static const int32_t values[] = {
  60. RCNConfigDeviceType_Unknown,
  61. RCNConfigDeviceType_Android,
  62. RCNConfigDeviceType_Ios,
  63. RCNConfigDeviceType_ChromeBrowser,
  64. RCNConfigDeviceType_ChromeOs,
  65. RCNConfigDeviceType_Desktop,
  66. };
  67. GPBEnumDescriptor *worker =
  68. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(RCNConfigDeviceType)
  69. valueNames:valueNames
  70. values:values
  71. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  72. enumVerifier:RCNConfigDeviceType_IsValidValue];
  73. GPBEnumDescriptor *expected = nil;
  74. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  75. [worker release];
  76. }
  77. }
  78. return descriptor;
  79. }
  80. BOOL RCNConfigDeviceType_IsValidValue(int32_t value__) {
  81. switch (value__) {
  82. case RCNConfigDeviceType_Unknown:
  83. case RCNConfigDeviceType_Android:
  84. case RCNConfigDeviceType_Ios:
  85. case RCNConfigDeviceType_ChromeBrowser:
  86. case RCNConfigDeviceType_ChromeOs:
  87. case RCNConfigDeviceType_Desktop:
  88. return YES;
  89. default:
  90. return NO;
  91. }
  92. }
  93. #pragma mark - RCNPackageData
  94. @implementation RCNPackageData
  95. @dynamic hasVersionCode, versionCode;
  96. @dynamic hasDigest, digest;
  97. @dynamic hasCertHash, certHash;
  98. @dynamic hasProjectId, projectId;
  99. @dynamic hasPackageName, packageName;
  100. @dynamic hasGmpProjectId, gmpProjectId;
  101. @dynamic hasGamesProjectId, gamesProjectId;
  102. @dynamic namespaceDigestArray, namespaceDigestArray_Count;
  103. @dynamic customVariableArray, customVariableArray_Count;
  104. @dynamic hasAppCertHash, appCertHash;
  105. @dynamic hasAppVersionCode, appVersionCode;
  106. @dynamic hasAppVersion, appVersion;
  107. @dynamic hasAppInstanceId, appInstanceId;
  108. @dynamic hasAppInstanceIdToken, appInstanceIdToken;
  109. @dynamic requestedHiddenNamespaceArray, requestedHiddenNamespaceArray_Count;
  110. @dynamic hasSdkVersion, sdkVersion;
  111. @dynamic analyticsUserPropertyArray, analyticsUserPropertyArray_Count;
  112. @dynamic hasRequestedCacheExpirationSeconds, requestedCacheExpirationSeconds;
  113. @dynamic hasFetchedConfigAgeSeconds, fetchedConfigAgeSeconds;
  114. @dynamic hasActiveConfigAgeSeconds, activeConfigAgeSeconds;
  115. typedef struct RCNPackageData__storage_ {
  116. uint32_t _has_storage_[1];
  117. int32_t versionCode;
  118. int32_t appVersionCode;
  119. int32_t sdkVersion;
  120. int32_t requestedCacheExpirationSeconds;
  121. int32_t fetchedConfigAgeSeconds;
  122. int32_t activeConfigAgeSeconds;
  123. NSString *packageName;
  124. NSData *digest;
  125. NSData *certHash;
  126. NSString *projectId;
  127. NSString *gmpProjectId;
  128. NSString *gamesProjectId;
  129. NSMutableArray *namespaceDigestArray;
  130. NSMutableArray *customVariableArray;
  131. NSData *appCertHash;
  132. NSString *appInstanceId;
  133. NSString *appVersion;
  134. NSString *appInstanceIdToken;
  135. NSMutableArray *requestedHiddenNamespaceArray;
  136. NSMutableArray *analyticsUserPropertyArray;
  137. } RCNPackageData__storage_;
  138. // This method is threadsafe because it is initially called
  139. // in +initialize for each subclass.
  140. + (GPBDescriptor *)descriptor {
  141. static GPBDescriptor *descriptor = nil;
  142. if (!descriptor) {
  143. static GPBMessageFieldDescription fields[] = {
  144. {
  145. .name = "packageName",
  146. .dataTypeSpecific.className = NULL,
  147. .number = RCNPackageData_FieldNumber_PackageName,
  148. .hasIndex = 4,
  149. .offset = (uint32_t)offsetof(RCNPackageData__storage_, packageName),
  150. .flags = GPBFieldOptional,
  151. .dataType = GPBDataTypeString,
  152. },
  153. {
  154. .name = "versionCode",
  155. .dataTypeSpecific.className = NULL,
  156. .number = RCNPackageData_FieldNumber_VersionCode,
  157. .hasIndex = 0,
  158. .offset = (uint32_t)offsetof(RCNPackageData__storage_, versionCode),
  159. .flags = GPBFieldOptional,
  160. .dataType = GPBDataTypeInt32,
  161. },
  162. {
  163. .name = "digest",
  164. .dataTypeSpecific.className = NULL,
  165. .number = RCNPackageData_FieldNumber_Digest,
  166. .hasIndex = 1,
  167. .offset = (uint32_t)offsetof(RCNPackageData__storage_, digest),
  168. .flags = GPBFieldOptional,
  169. .dataType = GPBDataTypeBytes,
  170. },
  171. {
  172. .name = "certHash",
  173. .dataTypeSpecific.className = NULL,
  174. .number = RCNPackageData_FieldNumber_CertHash,
  175. .hasIndex = 2,
  176. .offset = (uint32_t)offsetof(RCNPackageData__storage_, certHash),
  177. .flags = GPBFieldOptional,
  178. .dataType = GPBDataTypeBytes,
  179. },
  180. {
  181. .name = "projectId",
  182. .dataTypeSpecific.className = NULL,
  183. .number = RCNPackageData_FieldNumber_ProjectId,
  184. .hasIndex = 3,
  185. .offset = (uint32_t)offsetof(RCNPackageData__storage_, projectId),
  186. .flags = GPBFieldOptional,
  187. .dataType = GPBDataTypeString,
  188. },
  189. {
  190. .name = "gmpProjectId",
  191. .dataTypeSpecific.className = NULL,
  192. .number = RCNPackageData_FieldNumber_GmpProjectId,
  193. .hasIndex = 5,
  194. .offset = (uint32_t)offsetof(RCNPackageData__storage_, gmpProjectId),
  195. .flags = GPBFieldOptional,
  196. .dataType = GPBDataTypeString,
  197. },
  198. {
  199. .name = "gamesProjectId",
  200. .dataTypeSpecific.className = NULL,
  201. .number = RCNPackageData_FieldNumber_GamesProjectId,
  202. .hasIndex = 6,
  203. .offset = (uint32_t)offsetof(RCNPackageData__storage_, gamesProjectId),
  204. .flags = GPBFieldOptional,
  205. .dataType = GPBDataTypeString,
  206. },
  207. {
  208. .name = "namespaceDigestArray",
  209. .dataTypeSpecific.className = GPBStringifySymbol(RCNNamedValue),
  210. .number = RCNPackageData_FieldNumber_NamespaceDigestArray,
  211. .hasIndex = GPBNoHasBit,
  212. .offset = (uint32_t)offsetof(RCNPackageData__storage_, namespaceDigestArray),
  213. .flags = GPBFieldRepeated,
  214. .dataType = GPBDataTypeMessage,
  215. },
  216. {
  217. .name = "customVariableArray",
  218. .dataTypeSpecific.className = GPBStringifySymbol(RCNNamedValue),
  219. .number = RCNPackageData_FieldNumber_CustomVariableArray,
  220. .hasIndex = GPBNoHasBit,
  221. .offset = (uint32_t)offsetof(RCNPackageData__storage_, customVariableArray),
  222. .flags = GPBFieldRepeated,
  223. .dataType = GPBDataTypeMessage,
  224. },
  225. {
  226. .name = "appCertHash",
  227. .dataTypeSpecific.className = NULL,
  228. .number = RCNPackageData_FieldNumber_AppCertHash,
  229. .hasIndex = 7,
  230. .offset = (uint32_t)offsetof(RCNPackageData__storage_, appCertHash),
  231. .flags = GPBFieldOptional,
  232. .dataType = GPBDataTypeBytes,
  233. },
  234. {
  235. .name = "appVersionCode",
  236. .dataTypeSpecific.className = NULL,
  237. .number = RCNPackageData_FieldNumber_AppVersionCode,
  238. .hasIndex = 8,
  239. .offset = (uint32_t)offsetof(RCNPackageData__storage_, appVersionCode),
  240. .flags = GPBFieldOptional,
  241. .dataType = GPBDataTypeInt32,
  242. },
  243. {
  244. .name = "appInstanceId",
  245. .dataTypeSpecific.className = NULL,
  246. .number = RCNPackageData_FieldNumber_AppInstanceId,
  247. .hasIndex = 10,
  248. .offset = (uint32_t)offsetof(RCNPackageData__storage_, appInstanceId),
  249. .flags = GPBFieldOptional,
  250. .dataType = GPBDataTypeString,
  251. },
  252. {
  253. .name = "appVersion",
  254. .dataTypeSpecific.className = NULL,
  255. .number = RCNPackageData_FieldNumber_AppVersion,
  256. .hasIndex = 9,
  257. .offset = (uint32_t)offsetof(RCNPackageData__storage_, appVersion),
  258. .flags = GPBFieldOptional,
  259. .dataType = GPBDataTypeString,
  260. },
  261. {
  262. .name = "appInstanceIdToken",
  263. .dataTypeSpecific.className = NULL,
  264. .number = RCNPackageData_FieldNumber_AppInstanceIdToken,
  265. .hasIndex = 11,
  266. .offset = (uint32_t)offsetof(RCNPackageData__storage_, appInstanceIdToken),
  267. .flags = GPBFieldOptional,
  268. .dataType = GPBDataTypeString,
  269. },
  270. {
  271. .name = "requestedHiddenNamespaceArray",
  272. .dataTypeSpecific.className = NULL,
  273. .number = RCNPackageData_FieldNumber_RequestedHiddenNamespaceArray,
  274. .hasIndex = GPBNoHasBit,
  275. .offset = (uint32_t)offsetof(RCNPackageData__storage_, requestedHiddenNamespaceArray),
  276. .flags = GPBFieldRepeated,
  277. .dataType = GPBDataTypeString,
  278. },
  279. {
  280. .name = "sdkVersion",
  281. .dataTypeSpecific.className = NULL,
  282. .number = RCNPackageData_FieldNumber_SdkVersion,
  283. .hasIndex = 12,
  284. .offset = (uint32_t)offsetof(RCNPackageData__storage_, sdkVersion),
  285. .flags = GPBFieldOptional,
  286. .dataType = GPBDataTypeInt32,
  287. },
  288. {
  289. .name = "analyticsUserPropertyArray",
  290. .dataTypeSpecific.className = GPBStringifySymbol(RCNNamedValue),
  291. .number = RCNPackageData_FieldNumber_AnalyticsUserPropertyArray,
  292. .hasIndex = GPBNoHasBit,
  293. .offset = (uint32_t)offsetof(RCNPackageData__storage_, analyticsUserPropertyArray),
  294. .flags = GPBFieldRepeated,
  295. .dataType = GPBDataTypeMessage,
  296. },
  297. {
  298. .name = "requestedCacheExpirationSeconds",
  299. .dataTypeSpecific.className = NULL,
  300. .number = RCNPackageData_FieldNumber_RequestedCacheExpirationSeconds,
  301. .hasIndex = 13,
  302. .offset = (uint32_t)offsetof(RCNPackageData__storage_, requestedCacheExpirationSeconds),
  303. .flags = GPBFieldOptional,
  304. .dataType = GPBDataTypeInt32,
  305. },
  306. {
  307. .name = "fetchedConfigAgeSeconds",
  308. .dataTypeSpecific.className = NULL,
  309. .number = RCNPackageData_FieldNumber_FetchedConfigAgeSeconds,
  310. .hasIndex = 14,
  311. .offset = (uint32_t)offsetof(RCNPackageData__storage_, fetchedConfigAgeSeconds),
  312. .flags = GPBFieldOptional,
  313. .dataType = GPBDataTypeInt32,
  314. },
  315. {
  316. .name = "activeConfigAgeSeconds",
  317. .dataTypeSpecific.className = NULL,
  318. .number = RCNPackageData_FieldNumber_ActiveConfigAgeSeconds,
  319. .hasIndex = 15,
  320. .offset = (uint32_t)offsetof(RCNPackageData__storage_, activeConfigAgeSeconds),
  321. .flags = GPBFieldOptional,
  322. .dataType = GPBDataTypeInt32,
  323. },
  324. };
  325. GPBDescriptor *localDescriptor =
  326. [GPBDescriptor allocDescriptorForClass:[RCNPackageData class]
  327. rootClass:[RCNConfigRoot class]
  328. file:RCNConfigRoot_FileDescriptor()
  329. fields:fields
  330. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  331. storageSize:sizeof(RCNPackageData__storage_)
  332. flags:GPBDescriptorInitializationFlag_None];
  333. #if defined(DEBUG) && DEBUG
  334. NSAssert(descriptor == nil, @"Startup recursed!");
  335. #endif // DEBUG
  336. descriptor = localDescriptor;
  337. }
  338. return descriptor;
  339. }
  340. @end
  341. #pragma mark - RCNKeyValue
  342. @implementation RCNKeyValue
  343. @dynamic hasKey, key;
  344. @dynamic hasValue, value;
  345. typedef struct RCNKeyValue__storage_ {
  346. uint32_t _has_storage_[1];
  347. NSString *key;
  348. NSData *value;
  349. } RCNKeyValue__storage_;
  350. // This method is threadsafe because it is initially called
  351. // in +initialize for each subclass.
  352. + (GPBDescriptor *)descriptor {
  353. static GPBDescriptor *descriptor = nil;
  354. if (!descriptor) {
  355. static GPBMessageFieldDescription fields[] = {
  356. {
  357. .name = "key",
  358. .dataTypeSpecific.className = NULL,
  359. .number = RCNKeyValue_FieldNumber_Key,
  360. .hasIndex = 0,
  361. .offset = (uint32_t)offsetof(RCNKeyValue__storage_, key),
  362. .flags = GPBFieldOptional,
  363. .dataType = GPBDataTypeString,
  364. },
  365. {
  366. .name = "value",
  367. .dataTypeSpecific.className = NULL,
  368. .number = RCNKeyValue_FieldNumber_Value,
  369. .hasIndex = 1,
  370. .offset = (uint32_t)offsetof(RCNKeyValue__storage_, value),
  371. .flags = GPBFieldOptional,
  372. .dataType = GPBDataTypeBytes,
  373. },
  374. };
  375. GPBDescriptor *localDescriptor =
  376. [GPBDescriptor allocDescriptorForClass:[RCNKeyValue class]
  377. rootClass:[RCNConfigRoot class]
  378. file:RCNConfigRoot_FileDescriptor()
  379. fields:fields
  380. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  381. storageSize:sizeof(RCNKeyValue__storage_)
  382. flags:GPBDescriptorInitializationFlag_None];
  383. #if defined(DEBUG) && DEBUG
  384. NSAssert(descriptor == nil, @"Startup recursed!");
  385. #endif // DEBUG
  386. descriptor = localDescriptor;
  387. }
  388. return descriptor;
  389. }
  390. @end
  391. #pragma mark - RCNNamedValue
  392. @implementation RCNNamedValue
  393. @dynamic hasName, name;
  394. @dynamic hasValue, value;
  395. typedef struct RCNNamedValue__storage_ {
  396. uint32_t _has_storage_[1];
  397. NSString *name;
  398. NSString *value;
  399. } RCNNamedValue__storage_;
  400. // This method is threadsafe because it is initially called
  401. // in +initialize for each subclass.
  402. + (GPBDescriptor *)descriptor {
  403. static GPBDescriptor *descriptor = nil;
  404. if (!descriptor) {
  405. static GPBMessageFieldDescription fields[] = {
  406. {
  407. .name = "name",
  408. .dataTypeSpecific.className = NULL,
  409. .number = RCNNamedValue_FieldNumber_Name,
  410. .hasIndex = 0,
  411. .offset = (uint32_t)offsetof(RCNNamedValue__storage_, name),
  412. .flags = GPBFieldOptional,
  413. .dataType = GPBDataTypeString,
  414. },
  415. {
  416. .name = "value",
  417. .dataTypeSpecific.className = NULL,
  418. .number = RCNNamedValue_FieldNumber_Value,
  419. .hasIndex = 1,
  420. .offset = (uint32_t)offsetof(RCNNamedValue__storage_, value),
  421. .flags = GPBFieldOptional,
  422. .dataType = GPBDataTypeString,
  423. },
  424. };
  425. GPBDescriptor *localDescriptor =
  426. [GPBDescriptor allocDescriptorForClass:[RCNNamedValue class]
  427. rootClass:[RCNConfigRoot class]
  428. file:RCNConfigRoot_FileDescriptor()
  429. fields:fields
  430. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  431. storageSize:sizeof(RCNNamedValue__storage_)
  432. flags:GPBDescriptorInitializationFlag_None];
  433. #if defined(DEBUG) && DEBUG
  434. NSAssert(descriptor == nil, @"Startup recursed!");
  435. #endif // DEBUG
  436. descriptor = localDescriptor;
  437. }
  438. return descriptor;
  439. }
  440. @end
  441. #pragma mark - RCNConfigFetchRequest
  442. @implementation RCNConfigFetchRequest
  443. @dynamic hasConfig, config;
  444. @dynamic hasAndroidId, androidId;
  445. @dynamic packageDataArray, packageDataArray_Count;
  446. @dynamic hasDeviceDataVersionInfo, deviceDataVersionInfo;
  447. @dynamic hasSecurityToken, securityToken;
  448. @dynamic hasClientVersion, clientVersion;
  449. @dynamic hasGmsCoreVersion, gmsCoreVersion;
  450. @dynamic hasApiLevel, apiLevel;
  451. @dynamic hasDeviceCountry, deviceCountry;
  452. @dynamic hasDeviceLocale, deviceLocale;
  453. @dynamic hasDeviceType, deviceType;
  454. @dynamic hasDeviceSubtype, deviceSubtype;
  455. @dynamic hasOsVersion, osVersion;
  456. @dynamic hasDeviceTimezoneId, deviceTimezoneId;
  457. typedef struct RCNConfigFetchRequest__storage_ {
  458. uint32_t _has_storage_[1];
  459. int32_t clientVersion;
  460. int32_t gmsCoreVersion;
  461. int32_t apiLevel;
  462. int32_t deviceType;
  463. int32_t deviceSubtype;
  464. NSMutableArray *packageDataArray;
  465. NSString *deviceDataVersionInfo;
  466. AndroidConfigFetchProto *config;
  467. NSString *deviceCountry;
  468. NSString *deviceLocale;
  469. NSString *osVersion;
  470. NSString *deviceTimezoneId;
  471. uint64_t androidId;
  472. uint64_t securityToken;
  473. } RCNConfigFetchRequest__storage_;
  474. // This method is threadsafe because it is initially called
  475. // in +initialize for each subclass.
  476. + (GPBDescriptor *)descriptor {
  477. static GPBDescriptor *descriptor = nil;
  478. if (!descriptor) {
  479. static GPBMessageFieldDescription fields[] = {
  480. {
  481. .name = "androidId",
  482. .dataTypeSpecific.className = NULL,
  483. .number = RCNConfigFetchRequest_FieldNumber_AndroidId,
  484. .hasIndex = 1,
  485. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, androidId),
  486. .flags = GPBFieldOptional,
  487. .dataType = GPBDataTypeFixed64,
  488. },
  489. {
  490. .name = "packageDataArray",
  491. .dataTypeSpecific.className = GPBStringifySymbol(RCNPackageData),
  492. .number = RCNConfigFetchRequest_FieldNumber_PackageDataArray,
  493. .hasIndex = GPBNoHasBit,
  494. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, packageDataArray),
  495. .flags = GPBFieldRepeated,
  496. .dataType = GPBDataTypeMessage,
  497. },
  498. {
  499. .name = "deviceDataVersionInfo",
  500. .dataTypeSpecific.className = NULL,
  501. .number = RCNConfigFetchRequest_FieldNumber_DeviceDataVersionInfo,
  502. .hasIndex = 2,
  503. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceDataVersionInfo),
  504. .flags = GPBFieldOptional,
  505. .dataType = GPBDataTypeString,
  506. },
  507. {
  508. .name = "securityToken",
  509. .dataTypeSpecific.className = NULL,
  510. .number = RCNConfigFetchRequest_FieldNumber_SecurityToken,
  511. .hasIndex = 3,
  512. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, securityToken),
  513. .flags = GPBFieldOptional,
  514. .dataType = GPBDataTypeFixed64,
  515. },
  516. {
  517. .name = "config",
  518. .dataTypeSpecific.className = GPBStringifySymbol(AndroidConfigFetchProto),
  519. .number = RCNConfigFetchRequest_FieldNumber_Config,
  520. .hasIndex = 0,
  521. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, config),
  522. .flags = GPBFieldOptional,
  523. .dataType = GPBDataTypeMessage,
  524. },
  525. {
  526. .name = "clientVersion",
  527. .dataTypeSpecific.className = NULL,
  528. .number = RCNConfigFetchRequest_FieldNumber_ClientVersion,
  529. .hasIndex = 4,
  530. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, clientVersion),
  531. .flags = GPBFieldOptional,
  532. .dataType = GPBDataTypeInt32,
  533. },
  534. {
  535. .name = "gmsCoreVersion",
  536. .dataTypeSpecific.className = NULL,
  537. .number = RCNConfigFetchRequest_FieldNumber_GmsCoreVersion,
  538. .hasIndex = 5,
  539. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, gmsCoreVersion),
  540. .flags = GPBFieldOptional,
  541. .dataType = GPBDataTypeInt32,
  542. },
  543. {
  544. .name = "apiLevel",
  545. .dataTypeSpecific.className = NULL,
  546. .number = RCNConfigFetchRequest_FieldNumber_ApiLevel,
  547. .hasIndex = 6,
  548. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, apiLevel),
  549. .flags = GPBFieldOptional,
  550. .dataType = GPBDataTypeInt32,
  551. },
  552. {
  553. .name = "deviceCountry",
  554. .dataTypeSpecific.className = NULL,
  555. .number = RCNConfigFetchRequest_FieldNumber_DeviceCountry,
  556. .hasIndex = 7,
  557. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceCountry),
  558. .flags = GPBFieldOptional,
  559. .dataType = GPBDataTypeString,
  560. },
  561. {
  562. .name = "deviceLocale",
  563. .dataTypeSpecific.className = NULL,
  564. .number = RCNConfigFetchRequest_FieldNumber_DeviceLocale,
  565. .hasIndex = 8,
  566. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceLocale),
  567. .flags = GPBFieldOptional,
  568. .dataType = GPBDataTypeString,
  569. },
  570. {
  571. .name = "deviceType",
  572. .dataTypeSpecific.className = NULL,
  573. .number = RCNConfigFetchRequest_FieldNumber_DeviceType,
  574. .hasIndex = 9,
  575. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceType),
  576. .flags = GPBFieldOptional,
  577. .dataType = GPBDataTypeInt32,
  578. },
  579. {
  580. .name = "deviceSubtype",
  581. .dataTypeSpecific.className = NULL,
  582. .number = RCNConfigFetchRequest_FieldNumber_DeviceSubtype,
  583. .hasIndex = 10,
  584. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceSubtype),
  585. .flags = GPBFieldOptional,
  586. .dataType = GPBDataTypeInt32,
  587. },
  588. {
  589. .name = "osVersion",
  590. .dataTypeSpecific.className = NULL,
  591. .number = RCNConfigFetchRequest_FieldNumber_OsVersion,
  592. .hasIndex = 11,
  593. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, osVersion),
  594. .flags = GPBFieldOptional,
  595. .dataType = GPBDataTypeString,
  596. },
  597. {
  598. .name = "deviceTimezoneId",
  599. .dataTypeSpecific.className = NULL,
  600. .number = RCNConfigFetchRequest_FieldNumber_DeviceTimezoneId,
  601. .hasIndex = 12,
  602. .offset = (uint32_t)offsetof(RCNConfigFetchRequest__storage_, deviceTimezoneId),
  603. .flags = GPBFieldOptional,
  604. .dataType = GPBDataTypeString,
  605. },
  606. };
  607. GPBDescriptor *localDescriptor =
  608. [GPBDescriptor allocDescriptorForClass:[RCNConfigFetchRequest class]
  609. rootClass:[RCNConfigRoot class]
  610. file:RCNConfigRoot_FileDescriptor()
  611. fields:fields
  612. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  613. storageSize:sizeof(RCNConfigFetchRequest__storage_)
  614. flags:GPBDescriptorInitializationFlag_None];
  615. #if defined(DEBUG) && DEBUG
  616. NSAssert(descriptor == nil, @"Startup recursed!");
  617. #endif // DEBUG
  618. descriptor = localDescriptor;
  619. }
  620. return descriptor;
  621. }
  622. @end
  623. #pragma mark - RCNPackageTable
  624. @implementation RCNPackageTable
  625. @dynamic hasPackageName, packageName;
  626. @dynamic entryArray, entryArray_Count;
  627. @dynamic hasProjectId, projectId;
  628. typedef struct RCNPackageTable__storage_ {
  629. uint32_t _has_storage_[1];
  630. NSString *packageName;
  631. NSMutableArray *entryArray;
  632. NSString *projectId;
  633. } RCNPackageTable__storage_;
  634. // This method is threadsafe because it is initially called
  635. // in +initialize for each subclass.
  636. + (GPBDescriptor *)descriptor {
  637. static GPBDescriptor *descriptor = nil;
  638. if (!descriptor) {
  639. static GPBMessageFieldDescription fields[] = {
  640. {
  641. .name = "packageName",
  642. .dataTypeSpecific.className = NULL,
  643. .number = RCNPackageTable_FieldNumber_PackageName,
  644. .hasIndex = 0,
  645. .offset = (uint32_t)offsetof(RCNPackageTable__storage_, packageName),
  646. .flags = GPBFieldOptional,
  647. .dataType = GPBDataTypeString,
  648. },
  649. {
  650. .name = "entryArray",
  651. .dataTypeSpecific.className = GPBStringifySymbol(RCNKeyValue),
  652. .number = RCNPackageTable_FieldNumber_EntryArray,
  653. .hasIndex = GPBNoHasBit,
  654. .offset = (uint32_t)offsetof(RCNPackageTable__storage_, entryArray),
  655. .flags = GPBFieldRepeated,
  656. .dataType = GPBDataTypeMessage,
  657. },
  658. {
  659. .name = "projectId",
  660. .dataTypeSpecific.className = NULL,
  661. .number = RCNPackageTable_FieldNumber_ProjectId,
  662. .hasIndex = 1,
  663. .offset = (uint32_t)offsetof(RCNPackageTable__storage_, projectId),
  664. .flags = GPBFieldOptional,
  665. .dataType = GPBDataTypeString,
  666. },
  667. };
  668. GPBDescriptor *localDescriptor =
  669. [GPBDescriptor allocDescriptorForClass:[RCNPackageTable class]
  670. rootClass:[RCNConfigRoot class]
  671. file:RCNConfigRoot_FileDescriptor()
  672. fields:fields
  673. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  674. storageSize:sizeof(RCNPackageTable__storage_)
  675. flags:GPBDescriptorInitializationFlag_None];
  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 mark - RCNAppNamespaceConfigTable
  685. @implementation RCNAppNamespaceConfigTable
  686. @dynamic hasNamespace_p, namespace_p;
  687. @dynamic hasDigest, digest;
  688. @dynamic entryArray, entryArray_Count;
  689. @dynamic hasStatus, status;
  690. typedef struct RCNAppNamespaceConfigTable__storage_ {
  691. uint32_t _has_storage_[1];
  692. RCNAppNamespaceConfigTable_NamespaceStatus status;
  693. NSString *namespace_p;
  694. NSString *digest;
  695. NSMutableArray *entryArray;
  696. } RCNAppNamespaceConfigTable__storage_;
  697. // This method is threadsafe because it is initially called
  698. // in +initialize for each subclass.
  699. + (GPBDescriptor *)descriptor {
  700. static GPBDescriptor *descriptor = nil;
  701. if (!descriptor) {
  702. static GPBMessageFieldDescription fields[] = {
  703. {
  704. .name = "namespace_p",
  705. .dataTypeSpecific.className = NULL,
  706. .number = RCNAppNamespaceConfigTable_FieldNumber_Namespace_p,
  707. .hasIndex = 0,
  708. .offset = (uint32_t)offsetof(RCNAppNamespaceConfigTable__storage_, namespace_p),
  709. .flags = GPBFieldOptional,
  710. .dataType = GPBDataTypeString,
  711. },
  712. {
  713. .name = "digest",
  714. .dataTypeSpecific.className = NULL,
  715. .number = RCNAppNamespaceConfigTable_FieldNumber_Digest,
  716. .hasIndex = 1,
  717. .offset = (uint32_t)offsetof(RCNAppNamespaceConfigTable__storage_, digest),
  718. .flags = GPBFieldOptional,
  719. .dataType = GPBDataTypeString,
  720. },
  721. {
  722. .name = "entryArray",
  723. .dataTypeSpecific.className = GPBStringifySymbol(RCNKeyValue),
  724. .number = RCNAppNamespaceConfigTable_FieldNumber_EntryArray,
  725. .hasIndex = GPBNoHasBit,
  726. .offset = (uint32_t)offsetof(RCNAppNamespaceConfigTable__storage_, entryArray),
  727. .flags = GPBFieldRepeated,
  728. .dataType = GPBDataTypeMessage,
  729. },
  730. {
  731. .name = "status",
  732. .dataTypeSpecific.enumDescFunc = RCNAppNamespaceConfigTable_NamespaceStatus_EnumDescriptor,
  733. .number = RCNAppNamespaceConfigTable_FieldNumber_Status,
  734. .hasIndex = 2,
  735. .offset = (uint32_t)offsetof(RCNAppNamespaceConfigTable__storage_, status),
  736. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  737. .dataType = GPBDataTypeEnum,
  738. },
  739. };
  740. GPBDescriptor *localDescriptor =
  741. [GPBDescriptor allocDescriptorForClass:[RCNAppNamespaceConfigTable class]
  742. rootClass:[RCNConfigRoot class]
  743. file:RCNConfigRoot_FileDescriptor()
  744. fields:fields
  745. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  746. storageSize:sizeof(RCNAppNamespaceConfigTable__storage_)
  747. flags:GPBDescriptorInitializationFlag_None];
  748. #if defined(DEBUG) && DEBUG
  749. NSAssert(descriptor == nil, @"Startup recursed!");
  750. #endif // DEBUG
  751. descriptor = localDescriptor;
  752. }
  753. return descriptor;
  754. }
  755. @end
  756. #pragma mark - Enum RCNAppNamespaceConfigTable_NamespaceStatus
  757. GPBEnumDescriptor *RCNAppNamespaceConfigTable_NamespaceStatus_EnumDescriptor(void) {
  758. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  759. if (!descriptor) {
  760. static const char *valueNames =
  761. "Update\000NoTemplate\000NoChange\000EmptyConfig\000N"
  762. "otAuthorized\000";
  763. static const int32_t values[] = {
  764. RCNAppNamespaceConfigTable_NamespaceStatus_Update,
  765. RCNAppNamespaceConfigTable_NamespaceStatus_NoTemplate,
  766. RCNAppNamespaceConfigTable_NamespaceStatus_NoChange,
  767. RCNAppNamespaceConfigTable_NamespaceStatus_EmptyConfig,
  768. RCNAppNamespaceConfigTable_NamespaceStatus_NotAuthorized,
  769. };
  770. GPBEnumDescriptor *worker =
  771. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(RCNAppNamespaceConfigTable_NamespaceStatus)
  772. valueNames:valueNames
  773. values:values
  774. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  775. enumVerifier:RCNAppNamespaceConfigTable_NamespaceStatus_IsValidValue];
  776. GPBEnumDescriptor *expected = nil;
  777. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  778. [worker release];
  779. }
  780. }
  781. return descriptor;
  782. }
  783. BOOL RCNAppNamespaceConfigTable_NamespaceStatus_IsValidValue(int32_t value__) {
  784. switch (value__) {
  785. case RCNAppNamespaceConfigTable_NamespaceStatus_Update:
  786. case RCNAppNamespaceConfigTable_NamespaceStatus_NoTemplate:
  787. case RCNAppNamespaceConfigTable_NamespaceStatus_NoChange:
  788. case RCNAppNamespaceConfigTable_NamespaceStatus_EmptyConfig:
  789. case RCNAppNamespaceConfigTable_NamespaceStatus_NotAuthorized:
  790. return YES;
  791. default:
  792. return NO;
  793. }
  794. }
  795. #pragma mark - RCNAppConfigTable
  796. @implementation RCNAppConfigTable
  797. @dynamic hasAppName, appName;
  798. @dynamic namespaceConfigArray, namespaceConfigArray_Count;
  799. @dynamic experimentPayloadArray, experimentPayloadArray_Count;
  800. @dynamic enabledFeatureKeysArray, enabledFeatureKeysArray_Count;
  801. typedef struct RCNAppConfigTable__storage_ {
  802. uint32_t _has_storage_[1];
  803. NSString *appName;
  804. NSMutableArray *namespaceConfigArray;
  805. NSMutableArray *experimentPayloadArray;
  806. NSMutableArray *enabledFeatureKeysArray;
  807. } RCNAppConfigTable__storage_;
  808. // This method is threadsafe because it is initially called
  809. // in +initialize for each subclass.
  810. + (GPBDescriptor *)descriptor {
  811. static GPBDescriptor *descriptor = nil;
  812. if (!descriptor) {
  813. static GPBMessageFieldDescription fields[] = {
  814. {
  815. .name = "appName",
  816. .dataTypeSpecific.className = NULL,
  817. .number = RCNAppConfigTable_FieldNumber_AppName,
  818. .hasIndex = 0,
  819. .offset = (uint32_t)offsetof(RCNAppConfigTable__storage_, appName),
  820. .flags = GPBFieldOptional,
  821. .dataType = GPBDataTypeString,
  822. },
  823. {
  824. .name = "namespaceConfigArray",
  825. .dataTypeSpecific.className = GPBStringifySymbol(RCNAppNamespaceConfigTable),
  826. .number = RCNAppConfigTable_FieldNumber_NamespaceConfigArray,
  827. .hasIndex = GPBNoHasBit,
  828. .offset = (uint32_t)offsetof(RCNAppConfigTable__storage_, namespaceConfigArray),
  829. .flags = GPBFieldRepeated,
  830. .dataType = GPBDataTypeMessage,
  831. },
  832. {
  833. .name = "experimentPayloadArray",
  834. .dataTypeSpecific.className = NULL,
  835. .number = RCNAppConfigTable_FieldNumber_ExperimentPayloadArray,
  836. .hasIndex = GPBNoHasBit,
  837. .offset = (uint32_t)offsetof(RCNAppConfigTable__storage_, experimentPayloadArray),
  838. .flags = GPBFieldRepeated,
  839. .dataType = GPBDataTypeBytes,
  840. },
  841. {
  842. .name = "enabledFeatureKeysArray",
  843. .dataTypeSpecific.className = NULL,
  844. .number = RCNAppConfigTable_FieldNumber_EnabledFeatureKeysArray,
  845. .hasIndex = GPBNoHasBit,
  846. .offset = (uint32_t)offsetof(RCNAppConfigTable__storage_, enabledFeatureKeysArray),
  847. .flags = GPBFieldRepeated,
  848. .dataType = GPBDataTypeString,
  849. },
  850. };
  851. GPBDescriptor *localDescriptor =
  852. [GPBDescriptor allocDescriptorForClass:[RCNAppConfigTable class]
  853. rootClass:[RCNConfigRoot class]
  854. file:RCNConfigRoot_FileDescriptor()
  855. fields:fields
  856. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  857. storageSize:sizeof(RCNAppConfigTable__storage_)
  858. flags:GPBDescriptorInitializationFlag_None];
  859. #if defined(DEBUG) && DEBUG
  860. NSAssert(descriptor == nil, @"Startup recursed!");
  861. #endif // DEBUG
  862. descriptor = localDescriptor;
  863. }
  864. return descriptor;
  865. }
  866. @end
  867. #pragma mark - RCNConfigFetchResponse
  868. @implementation RCNConfigFetchResponse
  869. @dynamic packageTableArray, packageTableArray_Count;
  870. @dynamic hasStatus, status;
  871. @dynamic internalMetadataArray, internalMetadataArray_Count;
  872. @dynamic appConfigArray, appConfigArray_Count;
  873. typedef struct RCNConfigFetchResponse__storage_ {
  874. uint32_t _has_storage_[1];
  875. RCNConfigFetchResponse_ResponseStatus status;
  876. NSMutableArray *packageTableArray;
  877. NSMutableArray *internalMetadataArray;
  878. NSMutableArray *appConfigArray;
  879. } RCNConfigFetchResponse__storage_;
  880. // This method is threadsafe because it is initially called
  881. // in +initialize for each subclass.
  882. + (GPBDescriptor *)descriptor {
  883. static GPBDescriptor *descriptor = nil;
  884. if (!descriptor) {
  885. static GPBMessageFieldDescription fields[] = {
  886. {
  887. .name = "packageTableArray",
  888. .dataTypeSpecific.className = GPBStringifySymbol(RCNPackageTable),
  889. .number = RCNConfigFetchResponse_FieldNumber_PackageTableArray,
  890. .hasIndex = GPBNoHasBit,
  891. .offset = (uint32_t)offsetof(RCNConfigFetchResponse__storage_, packageTableArray),
  892. .flags = GPBFieldRepeated,
  893. .dataType = GPBDataTypeMessage,
  894. },
  895. {
  896. .name = "status",
  897. .dataTypeSpecific.enumDescFunc = RCNConfigFetchResponse_ResponseStatus_EnumDescriptor,
  898. .number = RCNConfigFetchResponse_FieldNumber_Status,
  899. .hasIndex = 0,
  900. .offset = (uint32_t)offsetof(RCNConfigFetchResponse__storage_, status),
  901. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  902. .dataType = GPBDataTypeEnum,
  903. },
  904. {
  905. .name = "internalMetadataArray",
  906. .dataTypeSpecific.className = GPBStringifySymbol(RCNKeyValue),
  907. .number = RCNConfigFetchResponse_FieldNumber_InternalMetadataArray,
  908. .hasIndex = GPBNoHasBit,
  909. .offset = (uint32_t)offsetof(RCNConfigFetchResponse__storage_, internalMetadataArray),
  910. .flags = GPBFieldRepeated,
  911. .dataType = GPBDataTypeMessage,
  912. },
  913. {
  914. .name = "appConfigArray",
  915. .dataTypeSpecific.className = GPBStringifySymbol(RCNAppConfigTable),
  916. .number = RCNConfigFetchResponse_FieldNumber_AppConfigArray,
  917. .hasIndex = GPBNoHasBit,
  918. .offset = (uint32_t)offsetof(RCNConfigFetchResponse__storage_, appConfigArray),
  919. .flags = GPBFieldRepeated,
  920. .dataType = GPBDataTypeMessage,
  921. },
  922. };
  923. GPBDescriptor *localDescriptor =
  924. [GPBDescriptor allocDescriptorForClass:[RCNConfigFetchResponse class]
  925. rootClass:[RCNConfigRoot class]
  926. file:RCNConfigRoot_FileDescriptor()
  927. fields:fields
  928. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  929. storageSize:sizeof(RCNConfigFetchResponse__storage_)
  930. flags:GPBDescriptorInitializationFlag_None];
  931. #if defined(DEBUG) && DEBUG
  932. NSAssert(descriptor == nil, @"Startup recursed!");
  933. #endif // DEBUG
  934. descriptor = localDescriptor;
  935. }
  936. return descriptor;
  937. }
  938. @end
  939. #pragma mark - Enum RCNConfigFetchResponse_ResponseStatus
  940. GPBEnumDescriptor *RCNConfigFetchResponse_ResponseStatus_EnumDescriptor(void) {
  941. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  942. if (!descriptor) {
  943. static const char *valueNames =
  944. "Success\000NoPackagesInRequest\000";
  945. static const int32_t values[] = {
  946. RCNConfigFetchResponse_ResponseStatus_Success,
  947. RCNConfigFetchResponse_ResponseStatus_NoPackagesInRequest,
  948. };
  949. GPBEnumDescriptor *worker =
  950. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(RCNConfigFetchResponse_ResponseStatus)
  951. valueNames:valueNames
  952. values:values
  953. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  954. enumVerifier:RCNConfigFetchResponse_ResponseStatus_IsValidValue];
  955. GPBEnumDescriptor *expected = nil;
  956. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  957. [worker release];
  958. }
  959. }
  960. return descriptor;
  961. }
  962. BOOL RCNConfigFetchResponse_ResponseStatus_IsValidValue(int32_t value__) {
  963. switch (value__) {
  964. case RCNConfigFetchResponse_ResponseStatus_Success:
  965. case RCNConfigFetchResponse_ResponseStatus_NoPackagesInRequest:
  966. return YES;
  967. default:
  968. return NO;
  969. }
  970. }
  971. #pragma clang diagnostic pop
  972. // @@protoc_insertion_point(global_scope)