PerfMetric.pbobjc.m 75 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847
  1. // Copyright 2020 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Generated by the protocol buffer compiler. DO NOT EDIT!
  15. // source: perf_metric.proto
  16. // This CPP symbol can be defined to use imports that match up to the framework
  17. // imports needed when using CocoaPods.
  18. #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
  19. #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
  20. #endif
  21. #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
  22. #import <Protobuf/GPBProtocolBuffers_RuntimeSupport.h>
  23. #else
  24. #import "GPBProtocolBuffers_RuntimeSupport.h"
  25. #endif
  26. #import <stdatomic.h>
  27. #import "PerfMetric.pbobjc.h"
  28. // @@protoc_insertion_point(imports)
  29. #pragma clang diagnostic push
  30. #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  31. #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
  32. #pragma mark - Objective C Class declarations
  33. // Forward declarations of Objective C classes that we can use as
  34. // static values in struct initializers.
  35. // We don't use [Foo class] because it is not a static value.
  36. GPBObjCClassDeclaration(FPRMSGAndroidApplicationInfo);
  37. GPBObjCClassDeclaration(FPRMSGAndroidMemoryReading);
  38. GPBObjCClassDeclaration(FPRMSGApplicationInfo);
  39. GPBObjCClassDeclaration(FPRMSGCpuMetricReading);
  40. GPBObjCClassDeclaration(FPRMSGGaugeMetadata);
  41. GPBObjCClassDeclaration(FPRMSGGaugeMetric);
  42. GPBObjCClassDeclaration(FPRMSGIosApplicationInfo);
  43. GPBObjCClassDeclaration(FPRMSGIosMemoryReading);
  44. GPBObjCClassDeclaration(FPRMSGNetworkConnectionInfo);
  45. GPBObjCClassDeclaration(FPRMSGNetworkRequestMetric);
  46. GPBObjCClassDeclaration(FPRMSGPerfSession);
  47. GPBObjCClassDeclaration(FPRMSGTraceMetric);
  48. GPBObjCClassDeclaration(FPRMSGTransportInfo);
  49. GPBObjCClassDeclaration(FPRMSGWebApplicationInfo);
  50. #pragma mark - FPRMSGPerfMetricRoot
  51. @implementation FPRMSGPerfMetricRoot
  52. // No extensions in the file and no imports, so no need to generate
  53. // +extensionRegistry.
  54. @end
  55. #pragma mark - FPRMSGPerfMetricRoot_FileDescriptor
  56. static GPBFileDescriptor *FPRMSGPerfMetricRoot_FileDescriptor(void) {
  57. // This is called by +initialize so there is no need to worry
  58. // about thread safety of the singleton.
  59. static GPBFileDescriptor *descriptor = NULL;
  60. if (!descriptor) {
  61. GPB_DEBUG_CHECK_RUNTIME_VERSIONS();
  62. descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"firebase.perf.v1"
  63. objcPrefix:@"FPRMSG"
  64. syntax:GPBFileSyntaxProto2];
  65. }
  66. return descriptor;
  67. }
  68. #pragma mark - Enum FPRMSGApplicationProcessState
  69. GPBEnumDescriptor *FPRMSGApplicationProcessState_EnumDescriptor(void) {
  70. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  71. if (!descriptor) {
  72. static const char *valueNames =
  73. "ApplicationProcessStateUnknown\000Foregroun"
  74. "d\000Background\000ForegroundBackground\000";
  75. static const int32_t values[] = {
  76. FPRMSGApplicationProcessState_ApplicationProcessStateUnknown,
  77. FPRMSGApplicationProcessState_Foreground,
  78. FPRMSGApplicationProcessState_Background,
  79. FPRMSGApplicationProcessState_ForegroundBackground,
  80. };
  81. GPBEnumDescriptor *worker =
  82. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGApplicationProcessState)
  83. valueNames:valueNames
  84. values:values
  85. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  86. enumVerifier:FPRMSGApplicationProcessState_IsValidValue];
  87. GPBEnumDescriptor *expected = nil;
  88. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  89. [worker release];
  90. }
  91. }
  92. return descriptor;
  93. }
  94. BOOL FPRMSGApplicationProcessState_IsValidValue(int32_t value__) {
  95. switch (value__) {
  96. case FPRMSGApplicationProcessState_ApplicationProcessStateUnknown:
  97. case FPRMSGApplicationProcessState_Foreground:
  98. case FPRMSGApplicationProcessState_Background:
  99. case FPRMSGApplicationProcessState_ForegroundBackground:
  100. return YES;
  101. default:
  102. return NO;
  103. }
  104. }
  105. #pragma mark - Enum FPRMSGSessionVerbosity
  106. GPBEnumDescriptor *FPRMSGSessionVerbosity_EnumDescriptor(void) {
  107. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  108. if (!descriptor) {
  109. static const char *valueNames =
  110. "SessionVerbosityNone\000GaugesAndSystemEven"
  111. "ts\000";
  112. static const int32_t values[] = {
  113. FPRMSGSessionVerbosity_SessionVerbosityNone,
  114. FPRMSGSessionVerbosity_GaugesAndSystemEvents,
  115. };
  116. GPBEnumDescriptor *worker =
  117. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGSessionVerbosity)
  118. valueNames:valueNames
  119. values:values
  120. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  121. enumVerifier:FPRMSGSessionVerbosity_IsValidValue];
  122. GPBEnumDescriptor *expected = nil;
  123. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  124. [worker release];
  125. }
  126. }
  127. return descriptor;
  128. }
  129. BOOL FPRMSGSessionVerbosity_IsValidValue(int32_t value__) {
  130. switch (value__) {
  131. case FPRMSGSessionVerbosity_SessionVerbosityNone:
  132. case FPRMSGSessionVerbosity_GaugesAndSystemEvents:
  133. return YES;
  134. default:
  135. return NO;
  136. }
  137. }
  138. #pragma mark - Enum FPRMSGVisibilityState
  139. GPBEnumDescriptor *FPRMSGVisibilityState_EnumDescriptor(void) {
  140. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  141. if (!descriptor) {
  142. static const char *valueNames =
  143. "VisibilityStateUnknown\000Visible\000Hidden\000Pr"
  144. "erender\000Unloaded\000";
  145. static const int32_t values[] = {
  146. FPRMSGVisibilityState_VisibilityStateUnknown,
  147. FPRMSGVisibilityState_Visible,
  148. FPRMSGVisibilityState_Hidden,
  149. FPRMSGVisibilityState_Prerender,
  150. FPRMSGVisibilityState_Unloaded,
  151. };
  152. GPBEnumDescriptor *worker =
  153. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGVisibilityState)
  154. valueNames:valueNames
  155. values:values
  156. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  157. enumVerifier:FPRMSGVisibilityState_IsValidValue];
  158. GPBEnumDescriptor *expected = nil;
  159. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  160. [worker release];
  161. }
  162. }
  163. return descriptor;
  164. }
  165. BOOL FPRMSGVisibilityState_IsValidValue(int32_t value__) {
  166. switch (value__) {
  167. case FPRMSGVisibilityState_VisibilityStateUnknown:
  168. case FPRMSGVisibilityState_Visible:
  169. case FPRMSGVisibilityState_Hidden:
  170. case FPRMSGVisibilityState_Prerender:
  171. case FPRMSGVisibilityState_Unloaded:
  172. return YES;
  173. default:
  174. return NO;
  175. }
  176. }
  177. #pragma mark - Enum FPRMSGServiceWorkerStatus
  178. GPBEnumDescriptor *FPRMSGServiceWorkerStatus_EnumDescriptor(void) {
  179. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  180. if (!descriptor) {
  181. static const char *valueNames =
  182. "ServiceWorkerStatusUnknown\000Unsupported\000C"
  183. "ontrolled\000Uncontrolled\000";
  184. static const int32_t values[] = {
  185. FPRMSGServiceWorkerStatus_ServiceWorkerStatusUnknown,
  186. FPRMSGServiceWorkerStatus_Unsupported,
  187. FPRMSGServiceWorkerStatus_Controlled,
  188. FPRMSGServiceWorkerStatus_Uncontrolled,
  189. };
  190. GPBEnumDescriptor *worker =
  191. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGServiceWorkerStatus)
  192. valueNames:valueNames
  193. values:values
  194. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  195. enumVerifier:FPRMSGServiceWorkerStatus_IsValidValue];
  196. GPBEnumDescriptor *expected = nil;
  197. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  198. [worker release];
  199. }
  200. }
  201. return descriptor;
  202. }
  203. BOOL FPRMSGServiceWorkerStatus_IsValidValue(int32_t value__) {
  204. switch (value__) {
  205. case FPRMSGServiceWorkerStatus_ServiceWorkerStatusUnknown:
  206. case FPRMSGServiceWorkerStatus_Unsupported:
  207. case FPRMSGServiceWorkerStatus_Controlled:
  208. case FPRMSGServiceWorkerStatus_Uncontrolled:
  209. return YES;
  210. default:
  211. return NO;
  212. }
  213. }
  214. #pragma mark - Enum FPRMSGEffectiveConnectionType
  215. GPBEnumDescriptor *FPRMSGEffectiveConnectionType_EnumDescriptor(void) {
  216. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  217. if (!descriptor) {
  218. static const char *valueNames =
  219. "EffectiveConnectionTypeUnknown\000Effective"
  220. "ConnectionTypeSlow2G\000EffectiveConnection"
  221. "Type2G\000EffectiveConnectionType3G\000Effecti"
  222. "veConnectionType4G\000";
  223. static const int32_t values[] = {
  224. FPRMSGEffectiveConnectionType_EffectiveConnectionTypeUnknown,
  225. FPRMSGEffectiveConnectionType_EffectiveConnectionTypeSlow2G,
  226. FPRMSGEffectiveConnectionType_EffectiveConnectionType2G,
  227. FPRMSGEffectiveConnectionType_EffectiveConnectionType3G,
  228. FPRMSGEffectiveConnectionType_EffectiveConnectionType4G,
  229. };
  230. static const char *extraTextFormatInfo = "\004\001i\352\344\344\202\000\002i\352\344\202\000\003i\352\344\202\000\004i\352\344\202\000";
  231. GPBEnumDescriptor *worker =
  232. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGEffectiveConnectionType)
  233. valueNames:valueNames
  234. values:values
  235. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  236. enumVerifier:FPRMSGEffectiveConnectionType_IsValidValue
  237. extraTextFormatInfo:extraTextFormatInfo];
  238. GPBEnumDescriptor *expected = nil;
  239. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  240. [worker release];
  241. }
  242. }
  243. return descriptor;
  244. }
  245. BOOL FPRMSGEffectiveConnectionType_IsValidValue(int32_t value__) {
  246. switch (value__) {
  247. case FPRMSGEffectiveConnectionType_EffectiveConnectionTypeUnknown:
  248. case FPRMSGEffectiveConnectionType_EffectiveConnectionTypeSlow2G:
  249. case FPRMSGEffectiveConnectionType_EffectiveConnectionType2G:
  250. case FPRMSGEffectiveConnectionType_EffectiveConnectionType3G:
  251. case FPRMSGEffectiveConnectionType_EffectiveConnectionType4G:
  252. return YES;
  253. default:
  254. return NO;
  255. }
  256. }
  257. #pragma mark - FPRMSGPerfMetric
  258. @implementation FPRMSGPerfMetric
  259. @dynamic hasApplicationInfo, applicationInfo;
  260. @dynamic hasTraceMetric, traceMetric;
  261. @dynamic hasNetworkRequestMetric, networkRequestMetric;
  262. @dynamic hasGaugeMetric, gaugeMetric;
  263. @dynamic hasTransportInfo, transportInfo;
  264. typedef struct FPRMSGPerfMetric__storage_ {
  265. uint32_t _has_storage_[1];
  266. FPRMSGApplicationInfo *applicationInfo;
  267. FPRMSGTraceMetric *traceMetric;
  268. FPRMSGNetworkRequestMetric *networkRequestMetric;
  269. FPRMSGGaugeMetric *gaugeMetric;
  270. FPRMSGTransportInfo *transportInfo;
  271. } FPRMSGPerfMetric__storage_;
  272. // This method is threadsafe because it is initially called
  273. // in +initialize for each subclass.
  274. + (GPBDescriptor *)descriptor {
  275. static GPBDescriptor *descriptor = nil;
  276. if (!descriptor) {
  277. static GPBMessageFieldDescription fields[] = {
  278. {
  279. .name = "applicationInfo",
  280. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGApplicationInfo),
  281. .number = FPRMSGPerfMetric_FieldNumber_ApplicationInfo,
  282. .hasIndex = 0,
  283. .offset = (uint32_t)offsetof(FPRMSGPerfMetric__storage_, applicationInfo),
  284. .flags = GPBFieldOptional,
  285. .dataType = GPBDataTypeMessage,
  286. },
  287. {
  288. .name = "traceMetric",
  289. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGTraceMetric),
  290. .number = FPRMSGPerfMetric_FieldNumber_TraceMetric,
  291. .hasIndex = 1,
  292. .offset = (uint32_t)offsetof(FPRMSGPerfMetric__storage_, traceMetric),
  293. .flags = GPBFieldOptional,
  294. .dataType = GPBDataTypeMessage,
  295. },
  296. {
  297. .name = "networkRequestMetric",
  298. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGNetworkRequestMetric),
  299. .number = FPRMSGPerfMetric_FieldNumber_NetworkRequestMetric,
  300. .hasIndex = 2,
  301. .offset = (uint32_t)offsetof(FPRMSGPerfMetric__storage_, networkRequestMetric),
  302. .flags = GPBFieldOptional,
  303. .dataType = GPBDataTypeMessage,
  304. },
  305. {
  306. .name = "gaugeMetric",
  307. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGGaugeMetric),
  308. .number = FPRMSGPerfMetric_FieldNumber_GaugeMetric,
  309. .hasIndex = 3,
  310. .offset = (uint32_t)offsetof(FPRMSGPerfMetric__storage_, gaugeMetric),
  311. .flags = GPBFieldOptional,
  312. .dataType = GPBDataTypeMessage,
  313. },
  314. {
  315. .name = "transportInfo",
  316. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGTransportInfo),
  317. .number = FPRMSGPerfMetric_FieldNumber_TransportInfo,
  318. .hasIndex = 4,
  319. .offset = (uint32_t)offsetof(FPRMSGPerfMetric__storage_, transportInfo),
  320. .flags = GPBFieldOptional,
  321. .dataType = GPBDataTypeMessage,
  322. },
  323. };
  324. GPBDescriptor *localDescriptor =
  325. [GPBDescriptor allocDescriptorForClass:[FPRMSGPerfMetric class]
  326. rootClass:[FPRMSGPerfMetricRoot class]
  327. file:FPRMSGPerfMetricRoot_FileDescriptor()
  328. fields:fields
  329. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  330. storageSize:sizeof(FPRMSGPerfMetric__storage_)
  331. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  332. #if defined(DEBUG) && DEBUG
  333. NSAssert(descriptor == nil, @"Startup recursed!");
  334. #endif // DEBUG
  335. descriptor = localDescriptor;
  336. }
  337. return descriptor;
  338. }
  339. @end
  340. #pragma mark - FPRMSGTraceMetric
  341. @implementation FPRMSGTraceMetric
  342. @dynamic hasName, name;
  343. @dynamic hasIsAuto, isAuto;
  344. @dynamic hasClientStartTimeUs, clientStartTimeUs;
  345. @dynamic hasDurationUs, durationUs;
  346. @dynamic counters, counters_Count;
  347. @dynamic subtracesArray, subtracesArray_Count;
  348. @dynamic customAttributes, customAttributes_Count;
  349. @dynamic perfSessionsArray, perfSessionsArray_Count;
  350. typedef struct FPRMSGTraceMetric__storage_ {
  351. uint32_t _has_storage_[1];
  352. NSString *name;
  353. GPBStringInt64Dictionary *counters;
  354. NSMutableArray *subtracesArray;
  355. NSMutableDictionary *customAttributes;
  356. NSMutableArray *perfSessionsArray;
  357. int64_t clientStartTimeUs;
  358. int64_t durationUs;
  359. } FPRMSGTraceMetric__storage_;
  360. // This method is threadsafe because it is initially called
  361. // in +initialize for each subclass.
  362. + (GPBDescriptor *)descriptor {
  363. static GPBDescriptor *descriptor = nil;
  364. if (!descriptor) {
  365. static GPBMessageFieldDescription fields[] = {
  366. {
  367. .name = "name",
  368. .dataTypeSpecific.clazz = Nil,
  369. .number = FPRMSGTraceMetric_FieldNumber_Name,
  370. .hasIndex = 0,
  371. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, name),
  372. .flags = GPBFieldOptional,
  373. .dataType = GPBDataTypeString,
  374. },
  375. {
  376. .name = "isAuto",
  377. .dataTypeSpecific.clazz = Nil,
  378. .number = FPRMSGTraceMetric_FieldNumber_IsAuto,
  379. .hasIndex = 1,
  380. .offset = 2, // Stored in _has_storage_ to save space.
  381. .flags = GPBFieldOptional,
  382. .dataType = GPBDataTypeBool,
  383. },
  384. {
  385. .name = "clientStartTimeUs",
  386. .dataTypeSpecific.clazz = Nil,
  387. .number = FPRMSGTraceMetric_FieldNumber_ClientStartTimeUs,
  388. .hasIndex = 3,
  389. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, clientStartTimeUs),
  390. .flags = GPBFieldOptional,
  391. .dataType = GPBDataTypeInt64,
  392. },
  393. {
  394. .name = "durationUs",
  395. .dataTypeSpecific.clazz = Nil,
  396. .number = FPRMSGTraceMetric_FieldNumber_DurationUs,
  397. .hasIndex = 4,
  398. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, durationUs),
  399. .flags = GPBFieldOptional,
  400. .dataType = GPBDataTypeInt64,
  401. },
  402. {
  403. .name = "counters",
  404. .dataTypeSpecific.clazz = Nil,
  405. .number = FPRMSGTraceMetric_FieldNumber_Counters,
  406. .hasIndex = GPBNoHasBit,
  407. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, counters),
  408. .flags = GPBFieldMapKeyString,
  409. .dataType = GPBDataTypeInt64,
  410. },
  411. {
  412. .name = "subtracesArray",
  413. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGTraceMetric),
  414. .number = FPRMSGTraceMetric_FieldNumber_SubtracesArray,
  415. .hasIndex = GPBNoHasBit,
  416. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, subtracesArray),
  417. .flags = GPBFieldRepeated,
  418. .dataType = GPBDataTypeMessage,
  419. },
  420. {
  421. .name = "customAttributes",
  422. .dataTypeSpecific.clazz = Nil,
  423. .number = FPRMSGTraceMetric_FieldNumber_CustomAttributes,
  424. .hasIndex = GPBNoHasBit,
  425. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, customAttributes),
  426. .flags = GPBFieldMapKeyString,
  427. .dataType = GPBDataTypeString,
  428. },
  429. {
  430. .name = "perfSessionsArray",
  431. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGPerfSession),
  432. .number = FPRMSGTraceMetric_FieldNumber_PerfSessionsArray,
  433. .hasIndex = GPBNoHasBit,
  434. .offset = (uint32_t)offsetof(FPRMSGTraceMetric__storage_, perfSessionsArray),
  435. .flags = GPBFieldRepeated,
  436. .dataType = GPBDataTypeMessage,
  437. },
  438. };
  439. GPBDescriptor *localDescriptor =
  440. [GPBDescriptor allocDescriptorForClass:[FPRMSGTraceMetric class]
  441. rootClass:[FPRMSGPerfMetricRoot class]
  442. file:FPRMSGPerfMetricRoot_FileDescriptor()
  443. fields:fields
  444. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  445. storageSize:sizeof(FPRMSGTraceMetric__storage_)
  446. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  447. #if defined(DEBUG) && DEBUG
  448. NSAssert(descriptor == nil, @"Startup recursed!");
  449. #endif // DEBUG
  450. descriptor = localDescriptor;
  451. }
  452. return descriptor;
  453. }
  454. @end
  455. #pragma mark - FPRMSGNetworkRequestMetric
  456. @implementation FPRMSGNetworkRequestMetric
  457. @dynamic hasURL, URL;
  458. @dynamic hasHTTPMethod, HTTPMethod;
  459. @dynamic hasRequestPayloadBytes, requestPayloadBytes;
  460. @dynamic hasResponsePayloadBytes, responsePayloadBytes;
  461. @dynamic hasNetworkClientErrorReason, networkClientErrorReason;
  462. @dynamic hasHTTPResponseCode, HTTPResponseCode;
  463. @dynamic hasResponseContentType, responseContentType;
  464. @dynamic hasClientStartTimeUs, clientStartTimeUs;
  465. @dynamic hasTimeToRequestCompletedUs, timeToRequestCompletedUs;
  466. @dynamic hasTimeToResponseInitiatedUs, timeToResponseInitiatedUs;
  467. @dynamic hasTimeToResponseCompletedUs, timeToResponseCompletedUs;
  468. @dynamic customAttributes, customAttributes_Count;
  469. @dynamic perfSessionsArray, perfSessionsArray_Count;
  470. typedef struct FPRMSGNetworkRequestMetric__storage_ {
  471. uint32_t _has_storage_[1];
  472. FPRMSGNetworkRequestMetric_HttpMethod HTTPMethod;
  473. int32_t HTTPResponseCode;
  474. FPRMSGNetworkRequestMetric_NetworkClientErrorReason networkClientErrorReason;
  475. NSString *URL;
  476. NSString *responseContentType;
  477. NSMutableDictionary *customAttributes;
  478. NSMutableArray *perfSessionsArray;
  479. int64_t requestPayloadBytes;
  480. int64_t responsePayloadBytes;
  481. int64_t clientStartTimeUs;
  482. int64_t timeToRequestCompletedUs;
  483. int64_t timeToResponseInitiatedUs;
  484. int64_t timeToResponseCompletedUs;
  485. } FPRMSGNetworkRequestMetric__storage_;
  486. // This method is threadsafe because it is initially called
  487. // in +initialize for each subclass.
  488. + (GPBDescriptor *)descriptor {
  489. static GPBDescriptor *descriptor = nil;
  490. if (!descriptor) {
  491. static GPBMessageFieldDescription fields[] = {
  492. {
  493. .name = "URL",
  494. .dataTypeSpecific.clazz = Nil,
  495. .number = FPRMSGNetworkRequestMetric_FieldNumber_URL,
  496. .hasIndex = 0,
  497. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, URL),
  498. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
  499. .dataType = GPBDataTypeString,
  500. },
  501. {
  502. .name = "HTTPMethod",
  503. .dataTypeSpecific.enumDescFunc = FPRMSGNetworkRequestMetric_HttpMethod_EnumDescriptor,
  504. .number = FPRMSGNetworkRequestMetric_FieldNumber_HTTPMethod,
  505. .hasIndex = 1,
  506. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, HTTPMethod),
  507. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom | GPBFieldHasEnumDescriptor),
  508. .dataType = GPBDataTypeEnum,
  509. },
  510. {
  511. .name = "requestPayloadBytes",
  512. .dataTypeSpecific.clazz = Nil,
  513. .number = FPRMSGNetworkRequestMetric_FieldNumber_RequestPayloadBytes,
  514. .hasIndex = 2,
  515. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, requestPayloadBytes),
  516. .flags = GPBFieldOptional,
  517. .dataType = GPBDataTypeInt64,
  518. },
  519. {
  520. .name = "responsePayloadBytes",
  521. .dataTypeSpecific.clazz = Nil,
  522. .number = FPRMSGNetworkRequestMetric_FieldNumber_ResponsePayloadBytes,
  523. .hasIndex = 3,
  524. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, responsePayloadBytes),
  525. .flags = GPBFieldOptional,
  526. .dataType = GPBDataTypeInt64,
  527. },
  528. {
  529. .name = "HTTPResponseCode",
  530. .dataTypeSpecific.clazz = Nil,
  531. .number = FPRMSGNetworkRequestMetric_FieldNumber_HTTPResponseCode,
  532. .hasIndex = 5,
  533. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, HTTPResponseCode),
  534. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
  535. .dataType = GPBDataTypeInt32,
  536. },
  537. {
  538. .name = "responseContentType",
  539. .dataTypeSpecific.clazz = Nil,
  540. .number = FPRMSGNetworkRequestMetric_FieldNumber_ResponseContentType,
  541. .hasIndex = 6,
  542. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, responseContentType),
  543. .flags = GPBFieldOptional,
  544. .dataType = GPBDataTypeString,
  545. },
  546. {
  547. .name = "clientStartTimeUs",
  548. .dataTypeSpecific.clazz = Nil,
  549. .number = FPRMSGNetworkRequestMetric_FieldNumber_ClientStartTimeUs,
  550. .hasIndex = 7,
  551. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, clientStartTimeUs),
  552. .flags = GPBFieldOptional,
  553. .dataType = GPBDataTypeInt64,
  554. },
  555. {
  556. .name = "timeToRequestCompletedUs",
  557. .dataTypeSpecific.clazz = Nil,
  558. .number = FPRMSGNetworkRequestMetric_FieldNumber_TimeToRequestCompletedUs,
  559. .hasIndex = 8,
  560. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, timeToRequestCompletedUs),
  561. .flags = GPBFieldOptional,
  562. .dataType = GPBDataTypeInt64,
  563. },
  564. {
  565. .name = "timeToResponseInitiatedUs",
  566. .dataTypeSpecific.clazz = Nil,
  567. .number = FPRMSGNetworkRequestMetric_FieldNumber_TimeToResponseInitiatedUs,
  568. .hasIndex = 9,
  569. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, timeToResponseInitiatedUs),
  570. .flags = GPBFieldOptional,
  571. .dataType = GPBDataTypeInt64,
  572. },
  573. {
  574. .name = "timeToResponseCompletedUs",
  575. .dataTypeSpecific.clazz = Nil,
  576. .number = FPRMSGNetworkRequestMetric_FieldNumber_TimeToResponseCompletedUs,
  577. .hasIndex = 10,
  578. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, timeToResponseCompletedUs),
  579. .flags = GPBFieldOptional,
  580. .dataType = GPBDataTypeInt64,
  581. },
  582. {
  583. .name = "networkClientErrorReason",
  584. .dataTypeSpecific.enumDescFunc = FPRMSGNetworkRequestMetric_NetworkClientErrorReason_EnumDescriptor,
  585. .number = FPRMSGNetworkRequestMetric_FieldNumber_NetworkClientErrorReason,
  586. .hasIndex = 4,
  587. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, networkClientErrorReason),
  588. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  589. .dataType = GPBDataTypeEnum,
  590. },
  591. {
  592. .name = "customAttributes",
  593. .dataTypeSpecific.clazz = Nil,
  594. .number = FPRMSGNetworkRequestMetric_FieldNumber_CustomAttributes,
  595. .hasIndex = GPBNoHasBit,
  596. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, customAttributes),
  597. .flags = GPBFieldMapKeyString,
  598. .dataType = GPBDataTypeString,
  599. },
  600. {
  601. .name = "perfSessionsArray",
  602. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGPerfSession),
  603. .number = FPRMSGNetworkRequestMetric_FieldNumber_PerfSessionsArray,
  604. .hasIndex = GPBNoHasBit,
  605. .offset = (uint32_t)offsetof(FPRMSGNetworkRequestMetric__storage_, perfSessionsArray),
  606. .flags = GPBFieldRepeated,
  607. .dataType = GPBDataTypeMessage,
  608. },
  609. };
  610. GPBDescriptor *localDescriptor =
  611. [GPBDescriptor allocDescriptorForClass:[FPRMSGNetworkRequestMetric class]
  612. rootClass:[FPRMSGPerfMetricRoot class]
  613. file:FPRMSGPerfMetricRoot_FileDescriptor()
  614. fields:fields
  615. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  616. storageSize:sizeof(FPRMSGNetworkRequestMetric__storage_)
  617. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  618. #if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  619. static const char *extraTextFormatInfo =
  620. "\003\001!!!\000\002!!!!\246\000\005!!!!\250\244\000";
  621. [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
  622. #endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  623. #if defined(DEBUG) && DEBUG
  624. NSAssert(descriptor == nil, @"Startup recursed!");
  625. #endif // DEBUG
  626. descriptor = localDescriptor;
  627. }
  628. return descriptor;
  629. }
  630. @end
  631. #pragma mark - Enum FPRMSGNetworkRequestMetric_HttpMethod
  632. GPBEnumDescriptor *FPRMSGNetworkRequestMetric_HttpMethod_EnumDescriptor(void) {
  633. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  634. if (!descriptor) {
  635. static const char *valueNames =
  636. "HTTPMethodUnknown\000Get\000Put\000Post\000Delete\000He"
  637. "ad\000Patch\000Options\000Trace\000Connect\000";
  638. static const int32_t values[] = {
  639. FPRMSGNetworkRequestMetric_HttpMethod_HTTPMethodUnknown,
  640. FPRMSGNetworkRequestMetric_HttpMethod_Get,
  641. FPRMSGNetworkRequestMetric_HttpMethod_Put,
  642. FPRMSGNetworkRequestMetric_HttpMethod_Post,
  643. FPRMSGNetworkRequestMetric_HttpMethod_Delete,
  644. FPRMSGNetworkRequestMetric_HttpMethod_Head,
  645. FPRMSGNetworkRequestMetric_HttpMethod_Patch,
  646. FPRMSGNetworkRequestMetric_HttpMethod_Options,
  647. FPRMSGNetworkRequestMetric_HttpMethod_Trace,
  648. FPRMSGNetworkRequestMetric_HttpMethod_Connect,
  649. };
  650. static const char *extraTextFormatInfo = "\001\000\004\346\347\000";
  651. GPBEnumDescriptor *worker =
  652. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGNetworkRequestMetric_HttpMethod)
  653. valueNames:valueNames
  654. values:values
  655. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  656. enumVerifier:FPRMSGNetworkRequestMetric_HttpMethod_IsValidValue
  657. extraTextFormatInfo:extraTextFormatInfo];
  658. GPBEnumDescriptor *expected = nil;
  659. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  660. [worker release];
  661. }
  662. }
  663. return descriptor;
  664. }
  665. BOOL FPRMSGNetworkRequestMetric_HttpMethod_IsValidValue(int32_t value__) {
  666. switch (value__) {
  667. case FPRMSGNetworkRequestMetric_HttpMethod_HTTPMethodUnknown:
  668. case FPRMSGNetworkRequestMetric_HttpMethod_Get:
  669. case FPRMSGNetworkRequestMetric_HttpMethod_Put:
  670. case FPRMSGNetworkRequestMetric_HttpMethod_Post:
  671. case FPRMSGNetworkRequestMetric_HttpMethod_Delete:
  672. case FPRMSGNetworkRequestMetric_HttpMethod_Head:
  673. case FPRMSGNetworkRequestMetric_HttpMethod_Patch:
  674. case FPRMSGNetworkRequestMetric_HttpMethod_Options:
  675. case FPRMSGNetworkRequestMetric_HttpMethod_Trace:
  676. case FPRMSGNetworkRequestMetric_HttpMethod_Connect:
  677. return YES;
  678. default:
  679. return NO;
  680. }
  681. }
  682. #pragma mark - Enum FPRMSGNetworkRequestMetric_NetworkClientErrorReason
  683. GPBEnumDescriptor *FPRMSGNetworkRequestMetric_NetworkClientErrorReason_EnumDescriptor(void) {
  684. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  685. if (!descriptor) {
  686. static const char *valueNames =
  687. "NetworkClientErrorReasonUnknown\000GenericC"
  688. "lientError\000";
  689. static const int32_t values[] = {
  690. FPRMSGNetworkRequestMetric_NetworkClientErrorReason_NetworkClientErrorReasonUnknown,
  691. FPRMSGNetworkRequestMetric_NetworkClientErrorReason_GenericClientError,
  692. };
  693. GPBEnumDescriptor *worker =
  694. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGNetworkRequestMetric_NetworkClientErrorReason)
  695. valueNames:valueNames
  696. values:values
  697. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  698. enumVerifier:FPRMSGNetworkRequestMetric_NetworkClientErrorReason_IsValidValue];
  699. GPBEnumDescriptor *expected = nil;
  700. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  701. [worker release];
  702. }
  703. }
  704. return descriptor;
  705. }
  706. BOOL FPRMSGNetworkRequestMetric_NetworkClientErrorReason_IsValidValue(int32_t value__) {
  707. switch (value__) {
  708. case FPRMSGNetworkRequestMetric_NetworkClientErrorReason_NetworkClientErrorReasonUnknown:
  709. case FPRMSGNetworkRequestMetric_NetworkClientErrorReason_GenericClientError:
  710. return YES;
  711. default:
  712. return NO;
  713. }
  714. }
  715. #pragma mark - FPRMSGPerfSession
  716. @implementation FPRMSGPerfSession
  717. @dynamic hasSessionId, sessionId;
  718. @dynamic sessionVerbosityArray, sessionVerbosityArray_Count;
  719. typedef struct FPRMSGPerfSession__storage_ {
  720. uint32_t _has_storage_[1];
  721. NSString *sessionId;
  722. GPBEnumArray *sessionVerbosityArray;
  723. } FPRMSGPerfSession__storage_;
  724. // This method is threadsafe because it is initially called
  725. // in +initialize for each subclass.
  726. + (GPBDescriptor *)descriptor {
  727. static GPBDescriptor *descriptor = nil;
  728. if (!descriptor) {
  729. static GPBMessageFieldDescription fields[] = {
  730. {
  731. .name = "sessionId",
  732. .dataTypeSpecific.clazz = Nil,
  733. .number = FPRMSGPerfSession_FieldNumber_SessionId,
  734. .hasIndex = 0,
  735. .offset = (uint32_t)offsetof(FPRMSGPerfSession__storage_, sessionId),
  736. .flags = GPBFieldOptional,
  737. .dataType = GPBDataTypeString,
  738. },
  739. {
  740. .name = "sessionVerbosityArray",
  741. .dataTypeSpecific.enumDescFunc = FPRMSGSessionVerbosity_EnumDescriptor,
  742. .number = FPRMSGPerfSession_FieldNumber_SessionVerbosityArray,
  743. .hasIndex = GPBNoHasBit,
  744. .offset = (uint32_t)offsetof(FPRMSGPerfSession__storage_, sessionVerbosityArray),
  745. .flags = (GPBFieldFlags)(GPBFieldRepeated | GPBFieldHasEnumDescriptor),
  746. .dataType = GPBDataTypeEnum,
  747. },
  748. };
  749. GPBDescriptor *localDescriptor =
  750. [GPBDescriptor allocDescriptorForClass:[FPRMSGPerfSession class]
  751. rootClass:[FPRMSGPerfMetricRoot class]
  752. file:FPRMSGPerfMetricRoot_FileDescriptor()
  753. fields:fields
  754. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  755. storageSize:sizeof(FPRMSGPerfSession__storage_)
  756. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  757. #if defined(DEBUG) && DEBUG
  758. NSAssert(descriptor == nil, @"Startup recursed!");
  759. #endif // DEBUG
  760. descriptor = localDescriptor;
  761. }
  762. return descriptor;
  763. }
  764. @end
  765. #pragma mark - FPRMSGGaugeMetric
  766. @implementation FPRMSGGaugeMetric
  767. @dynamic hasSessionId, sessionId;
  768. @dynamic hasGaugeMetadata, gaugeMetadata;
  769. @dynamic cpuMetricReadingsArray, cpuMetricReadingsArray_Count;
  770. @dynamic androidMemoryReadingsArray, androidMemoryReadingsArray_Count;
  771. @dynamic iosMemoryReadingsArray, iosMemoryReadingsArray_Count;
  772. typedef struct FPRMSGGaugeMetric__storage_ {
  773. uint32_t _has_storage_[1];
  774. NSString *sessionId;
  775. NSMutableArray *cpuMetricReadingsArray;
  776. FPRMSGGaugeMetadata *gaugeMetadata;
  777. NSMutableArray *androidMemoryReadingsArray;
  778. NSMutableArray *iosMemoryReadingsArray;
  779. } FPRMSGGaugeMetric__storage_;
  780. // This method is threadsafe because it is initially called
  781. // in +initialize for each subclass.
  782. + (GPBDescriptor *)descriptor {
  783. static GPBDescriptor *descriptor = nil;
  784. if (!descriptor) {
  785. static GPBMessageFieldDescription fields[] = {
  786. {
  787. .name = "sessionId",
  788. .dataTypeSpecific.clazz = Nil,
  789. .number = FPRMSGGaugeMetric_FieldNumber_SessionId,
  790. .hasIndex = 0,
  791. .offset = (uint32_t)offsetof(FPRMSGGaugeMetric__storage_, sessionId),
  792. .flags = GPBFieldOptional,
  793. .dataType = GPBDataTypeString,
  794. },
  795. {
  796. .name = "cpuMetricReadingsArray",
  797. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGCpuMetricReading),
  798. .number = FPRMSGGaugeMetric_FieldNumber_CpuMetricReadingsArray,
  799. .hasIndex = GPBNoHasBit,
  800. .offset = (uint32_t)offsetof(FPRMSGGaugeMetric__storage_, cpuMetricReadingsArray),
  801. .flags = GPBFieldRepeated,
  802. .dataType = GPBDataTypeMessage,
  803. },
  804. {
  805. .name = "gaugeMetadata",
  806. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGGaugeMetadata),
  807. .number = FPRMSGGaugeMetric_FieldNumber_GaugeMetadata,
  808. .hasIndex = 1,
  809. .offset = (uint32_t)offsetof(FPRMSGGaugeMetric__storage_, gaugeMetadata),
  810. .flags = GPBFieldOptional,
  811. .dataType = GPBDataTypeMessage,
  812. },
  813. {
  814. .name = "androidMemoryReadingsArray",
  815. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGAndroidMemoryReading),
  816. .number = FPRMSGGaugeMetric_FieldNumber_AndroidMemoryReadingsArray,
  817. .hasIndex = GPBNoHasBit,
  818. .offset = (uint32_t)offsetof(FPRMSGGaugeMetric__storage_, androidMemoryReadingsArray),
  819. .flags = GPBFieldRepeated,
  820. .dataType = GPBDataTypeMessage,
  821. },
  822. {
  823. .name = "iosMemoryReadingsArray",
  824. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGIosMemoryReading),
  825. .number = FPRMSGGaugeMetric_FieldNumber_IosMemoryReadingsArray,
  826. .hasIndex = GPBNoHasBit,
  827. .offset = (uint32_t)offsetof(FPRMSGGaugeMetric__storage_, iosMemoryReadingsArray),
  828. .flags = GPBFieldRepeated,
  829. .dataType = GPBDataTypeMessage,
  830. },
  831. };
  832. GPBDescriptor *localDescriptor =
  833. [GPBDescriptor allocDescriptorForClass:[FPRMSGGaugeMetric class]
  834. rootClass:[FPRMSGPerfMetricRoot class]
  835. file:FPRMSGPerfMetricRoot_FileDescriptor()
  836. fields:fields
  837. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  838. storageSize:sizeof(FPRMSGGaugeMetric__storage_)
  839. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  840. #if defined(DEBUG) && DEBUG
  841. NSAssert(descriptor == nil, @"Startup recursed!");
  842. #endif // DEBUG
  843. descriptor = localDescriptor;
  844. }
  845. return descriptor;
  846. }
  847. @end
  848. #pragma mark - FPRMSGCpuMetricReading
  849. @implementation FPRMSGCpuMetricReading
  850. @dynamic hasClientTimeUs, clientTimeUs;
  851. @dynamic hasUserTimeUs, userTimeUs;
  852. @dynamic hasSystemTimeUs, systemTimeUs;
  853. typedef struct FPRMSGCpuMetricReading__storage_ {
  854. uint32_t _has_storage_[1];
  855. int64_t clientTimeUs;
  856. int64_t userTimeUs;
  857. int64_t systemTimeUs;
  858. } FPRMSGCpuMetricReading__storage_;
  859. // This method is threadsafe because it is initially called
  860. // in +initialize for each subclass.
  861. + (GPBDescriptor *)descriptor {
  862. static GPBDescriptor *descriptor = nil;
  863. if (!descriptor) {
  864. static GPBMessageFieldDescription fields[] = {
  865. {
  866. .name = "clientTimeUs",
  867. .dataTypeSpecific.clazz = Nil,
  868. .number = FPRMSGCpuMetricReading_FieldNumber_ClientTimeUs,
  869. .hasIndex = 0,
  870. .offset = (uint32_t)offsetof(FPRMSGCpuMetricReading__storage_, clientTimeUs),
  871. .flags = GPBFieldOptional,
  872. .dataType = GPBDataTypeInt64,
  873. },
  874. {
  875. .name = "userTimeUs",
  876. .dataTypeSpecific.clazz = Nil,
  877. .number = FPRMSGCpuMetricReading_FieldNumber_UserTimeUs,
  878. .hasIndex = 1,
  879. .offset = (uint32_t)offsetof(FPRMSGCpuMetricReading__storage_, userTimeUs),
  880. .flags = GPBFieldOptional,
  881. .dataType = GPBDataTypeInt64,
  882. },
  883. {
  884. .name = "systemTimeUs",
  885. .dataTypeSpecific.clazz = Nil,
  886. .number = FPRMSGCpuMetricReading_FieldNumber_SystemTimeUs,
  887. .hasIndex = 2,
  888. .offset = (uint32_t)offsetof(FPRMSGCpuMetricReading__storage_, systemTimeUs),
  889. .flags = GPBFieldOptional,
  890. .dataType = GPBDataTypeInt64,
  891. },
  892. };
  893. GPBDescriptor *localDescriptor =
  894. [GPBDescriptor allocDescriptorForClass:[FPRMSGCpuMetricReading class]
  895. rootClass:[FPRMSGPerfMetricRoot class]
  896. file:FPRMSGPerfMetricRoot_FileDescriptor()
  897. fields:fields
  898. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  899. storageSize:sizeof(FPRMSGCpuMetricReading__storage_)
  900. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  901. #if defined(DEBUG) && DEBUG
  902. NSAssert(descriptor == nil, @"Startup recursed!");
  903. #endif // DEBUG
  904. descriptor = localDescriptor;
  905. }
  906. return descriptor;
  907. }
  908. @end
  909. #pragma mark - FPRMSGIosMemoryReading
  910. @implementation FPRMSGIosMemoryReading
  911. @dynamic hasClientTimeUs, clientTimeUs;
  912. @dynamic hasUsedAppHeapMemoryKb, usedAppHeapMemoryKb;
  913. @dynamic hasFreeAppHeapMemoryKb, freeAppHeapMemoryKb;
  914. typedef struct FPRMSGIosMemoryReading__storage_ {
  915. uint32_t _has_storage_[1];
  916. int32_t usedAppHeapMemoryKb;
  917. int32_t freeAppHeapMemoryKb;
  918. int64_t clientTimeUs;
  919. } FPRMSGIosMemoryReading__storage_;
  920. // This method is threadsafe because it is initially called
  921. // in +initialize for each subclass.
  922. + (GPBDescriptor *)descriptor {
  923. static GPBDescriptor *descriptor = nil;
  924. if (!descriptor) {
  925. static GPBMessageFieldDescription fields[] = {
  926. {
  927. .name = "clientTimeUs",
  928. .dataTypeSpecific.clazz = Nil,
  929. .number = FPRMSGIosMemoryReading_FieldNumber_ClientTimeUs,
  930. .hasIndex = 0,
  931. .offset = (uint32_t)offsetof(FPRMSGIosMemoryReading__storage_, clientTimeUs),
  932. .flags = GPBFieldOptional,
  933. .dataType = GPBDataTypeInt64,
  934. },
  935. {
  936. .name = "usedAppHeapMemoryKb",
  937. .dataTypeSpecific.clazz = Nil,
  938. .number = FPRMSGIosMemoryReading_FieldNumber_UsedAppHeapMemoryKb,
  939. .hasIndex = 1,
  940. .offset = (uint32_t)offsetof(FPRMSGIosMemoryReading__storage_, usedAppHeapMemoryKb),
  941. .flags = GPBFieldOptional,
  942. .dataType = GPBDataTypeInt32,
  943. },
  944. {
  945. .name = "freeAppHeapMemoryKb",
  946. .dataTypeSpecific.clazz = Nil,
  947. .number = FPRMSGIosMemoryReading_FieldNumber_FreeAppHeapMemoryKb,
  948. .hasIndex = 2,
  949. .offset = (uint32_t)offsetof(FPRMSGIosMemoryReading__storage_, freeAppHeapMemoryKb),
  950. .flags = GPBFieldOptional,
  951. .dataType = GPBDataTypeInt32,
  952. },
  953. };
  954. GPBDescriptor *localDescriptor =
  955. [GPBDescriptor allocDescriptorForClass:[FPRMSGIosMemoryReading class]
  956. rootClass:[FPRMSGPerfMetricRoot class]
  957. file:FPRMSGPerfMetricRoot_FileDescriptor()
  958. fields:fields
  959. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  960. storageSize:sizeof(FPRMSGIosMemoryReading__storage_)
  961. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  962. #if defined(DEBUG) && DEBUG
  963. NSAssert(descriptor == nil, @"Startup recursed!");
  964. #endif // DEBUG
  965. descriptor = localDescriptor;
  966. }
  967. return descriptor;
  968. }
  969. @end
  970. #pragma mark - FPRMSGAndroidMemoryReading
  971. @implementation FPRMSGAndroidMemoryReading
  972. @dynamic hasClientTimeUs, clientTimeUs;
  973. @dynamic hasUsedAppJavaHeapMemoryKb, usedAppJavaHeapMemoryKb;
  974. typedef struct FPRMSGAndroidMemoryReading__storage_ {
  975. uint32_t _has_storage_[1];
  976. int32_t usedAppJavaHeapMemoryKb;
  977. int64_t clientTimeUs;
  978. } FPRMSGAndroidMemoryReading__storage_;
  979. // This method is threadsafe because it is initially called
  980. // in +initialize for each subclass.
  981. + (GPBDescriptor *)descriptor {
  982. static GPBDescriptor *descriptor = nil;
  983. if (!descriptor) {
  984. static GPBMessageFieldDescription fields[] = {
  985. {
  986. .name = "clientTimeUs",
  987. .dataTypeSpecific.clazz = Nil,
  988. .number = FPRMSGAndroidMemoryReading_FieldNumber_ClientTimeUs,
  989. .hasIndex = 0,
  990. .offset = (uint32_t)offsetof(FPRMSGAndroidMemoryReading__storage_, clientTimeUs),
  991. .flags = GPBFieldOptional,
  992. .dataType = GPBDataTypeInt64,
  993. },
  994. {
  995. .name = "usedAppJavaHeapMemoryKb",
  996. .dataTypeSpecific.clazz = Nil,
  997. .number = FPRMSGAndroidMemoryReading_FieldNumber_UsedAppJavaHeapMemoryKb,
  998. .hasIndex = 1,
  999. .offset = (uint32_t)offsetof(FPRMSGAndroidMemoryReading__storage_, usedAppJavaHeapMemoryKb),
  1000. .flags = GPBFieldOptional,
  1001. .dataType = GPBDataTypeInt32,
  1002. },
  1003. };
  1004. GPBDescriptor *localDescriptor =
  1005. [GPBDescriptor allocDescriptorForClass:[FPRMSGAndroidMemoryReading class]
  1006. rootClass:[FPRMSGPerfMetricRoot class]
  1007. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1008. fields:fields
  1009. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1010. storageSize:sizeof(FPRMSGAndroidMemoryReading__storage_)
  1011. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1012. #if defined(DEBUG) && DEBUG
  1013. NSAssert(descriptor == nil, @"Startup recursed!");
  1014. #endif // DEBUG
  1015. descriptor = localDescriptor;
  1016. }
  1017. return descriptor;
  1018. }
  1019. @end
  1020. #pragma mark - FPRMSGGaugeMetadata
  1021. @implementation FPRMSGGaugeMetadata
  1022. @dynamic hasProcessName, processName;
  1023. @dynamic hasCpuClockRateKhz, cpuClockRateKhz;
  1024. @dynamic hasCpuProcessorCount, cpuProcessorCount;
  1025. @dynamic hasDeviceRamSizeKb, deviceRamSizeKb;
  1026. @dynamic hasMaxAppJavaHeapMemoryKb, maxAppJavaHeapMemoryKb;
  1027. @dynamic hasMaxEncouragedAppJavaHeapMemoryKb, maxEncouragedAppJavaHeapMemoryKb;
  1028. typedef struct FPRMSGGaugeMetadata__storage_ {
  1029. uint32_t _has_storage_[1];
  1030. int32_t cpuClockRateKhz;
  1031. int32_t deviceRamSizeKb;
  1032. int32_t maxAppJavaHeapMemoryKb;
  1033. int32_t maxEncouragedAppJavaHeapMemoryKb;
  1034. int32_t cpuProcessorCount;
  1035. NSString *processName;
  1036. } FPRMSGGaugeMetadata__storage_;
  1037. // This method is threadsafe because it is initially called
  1038. // in +initialize for each subclass.
  1039. + (GPBDescriptor *)descriptor {
  1040. static GPBDescriptor *descriptor = nil;
  1041. if (!descriptor) {
  1042. static GPBMessageFieldDescription fields[] = {
  1043. {
  1044. .name = "processName",
  1045. .dataTypeSpecific.clazz = Nil,
  1046. .number = FPRMSGGaugeMetadata_FieldNumber_ProcessName,
  1047. .hasIndex = 0,
  1048. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, processName),
  1049. .flags = GPBFieldOptional,
  1050. .dataType = GPBDataTypeString,
  1051. },
  1052. {
  1053. .name = "cpuClockRateKhz",
  1054. .dataTypeSpecific.clazz = Nil,
  1055. .number = FPRMSGGaugeMetadata_FieldNumber_CpuClockRateKhz,
  1056. .hasIndex = 1,
  1057. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, cpuClockRateKhz),
  1058. .flags = GPBFieldOptional,
  1059. .dataType = GPBDataTypeInt32,
  1060. },
  1061. {
  1062. .name = "deviceRamSizeKb",
  1063. .dataTypeSpecific.clazz = Nil,
  1064. .number = FPRMSGGaugeMetadata_FieldNumber_DeviceRamSizeKb,
  1065. .hasIndex = 3,
  1066. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, deviceRamSizeKb),
  1067. .flags = GPBFieldOptional,
  1068. .dataType = GPBDataTypeInt32,
  1069. },
  1070. {
  1071. .name = "maxAppJavaHeapMemoryKb",
  1072. .dataTypeSpecific.clazz = Nil,
  1073. .number = FPRMSGGaugeMetadata_FieldNumber_MaxAppJavaHeapMemoryKb,
  1074. .hasIndex = 4,
  1075. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, maxAppJavaHeapMemoryKb),
  1076. .flags = GPBFieldOptional,
  1077. .dataType = GPBDataTypeInt32,
  1078. },
  1079. {
  1080. .name = "maxEncouragedAppJavaHeapMemoryKb",
  1081. .dataTypeSpecific.clazz = Nil,
  1082. .number = FPRMSGGaugeMetadata_FieldNumber_MaxEncouragedAppJavaHeapMemoryKb,
  1083. .hasIndex = 5,
  1084. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, maxEncouragedAppJavaHeapMemoryKb),
  1085. .flags = GPBFieldOptional,
  1086. .dataType = GPBDataTypeInt32,
  1087. },
  1088. {
  1089. .name = "cpuProcessorCount",
  1090. .dataTypeSpecific.clazz = Nil,
  1091. .number = FPRMSGGaugeMetadata_FieldNumber_CpuProcessorCount,
  1092. .hasIndex = 2,
  1093. .offset = (uint32_t)offsetof(FPRMSGGaugeMetadata__storage_, cpuProcessorCount),
  1094. .flags = GPBFieldOptional,
  1095. .dataType = GPBDataTypeInt32,
  1096. },
  1097. };
  1098. GPBDescriptor *localDescriptor =
  1099. [GPBDescriptor allocDescriptorForClass:[FPRMSGGaugeMetadata class]
  1100. rootClass:[FPRMSGPerfMetricRoot class]
  1101. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1102. fields:fields
  1103. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1104. storageSize:sizeof(FPRMSGGaugeMetadata__storage_)
  1105. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1106. #if defined(DEBUG) && DEBUG
  1107. NSAssert(descriptor == nil, @"Startup recursed!");
  1108. #endif // DEBUG
  1109. descriptor = localDescriptor;
  1110. }
  1111. return descriptor;
  1112. }
  1113. @end
  1114. #pragma mark - FPRMSGApplicationInfo
  1115. @implementation FPRMSGApplicationInfo
  1116. @dynamic hasGoogleAppId, googleAppId;
  1117. @dynamic hasAppInstanceId, appInstanceId;
  1118. @dynamic hasAndroidAppInfo, androidAppInfo;
  1119. @dynamic hasIosAppInfo, iosAppInfo;
  1120. @dynamic hasWebAppInfo, webAppInfo;
  1121. @dynamic hasApplicationProcessState, applicationProcessState;
  1122. @dynamic customAttributes, customAttributes_Count;
  1123. typedef struct FPRMSGApplicationInfo__storage_ {
  1124. uint32_t _has_storage_[1];
  1125. FPRMSGApplicationProcessState applicationProcessState;
  1126. NSString *googleAppId;
  1127. NSString *appInstanceId;
  1128. FPRMSGAndroidApplicationInfo *androidAppInfo;
  1129. FPRMSGIosApplicationInfo *iosAppInfo;
  1130. NSMutableDictionary *customAttributes;
  1131. FPRMSGWebApplicationInfo *webAppInfo;
  1132. } FPRMSGApplicationInfo__storage_;
  1133. // This method is threadsafe because it is initially called
  1134. // in +initialize for each subclass.
  1135. + (GPBDescriptor *)descriptor {
  1136. static GPBDescriptor *descriptor = nil;
  1137. if (!descriptor) {
  1138. static GPBMessageFieldDescription fields[] = {
  1139. {
  1140. .name = "googleAppId",
  1141. .dataTypeSpecific.clazz = Nil,
  1142. .number = FPRMSGApplicationInfo_FieldNumber_GoogleAppId,
  1143. .hasIndex = 0,
  1144. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, googleAppId),
  1145. .flags = GPBFieldOptional,
  1146. .dataType = GPBDataTypeString,
  1147. },
  1148. {
  1149. .name = "appInstanceId",
  1150. .dataTypeSpecific.clazz = Nil,
  1151. .number = FPRMSGApplicationInfo_FieldNumber_AppInstanceId,
  1152. .hasIndex = 1,
  1153. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, appInstanceId),
  1154. .flags = GPBFieldOptional,
  1155. .dataType = GPBDataTypeString,
  1156. },
  1157. {
  1158. .name = "androidAppInfo",
  1159. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGAndroidApplicationInfo),
  1160. .number = FPRMSGApplicationInfo_FieldNumber_AndroidAppInfo,
  1161. .hasIndex = 2,
  1162. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, androidAppInfo),
  1163. .flags = GPBFieldOptional,
  1164. .dataType = GPBDataTypeMessage,
  1165. },
  1166. {
  1167. .name = "iosAppInfo",
  1168. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGIosApplicationInfo),
  1169. .number = FPRMSGApplicationInfo_FieldNumber_IosAppInfo,
  1170. .hasIndex = 3,
  1171. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, iosAppInfo),
  1172. .flags = GPBFieldOptional,
  1173. .dataType = GPBDataTypeMessage,
  1174. },
  1175. {
  1176. .name = "applicationProcessState",
  1177. .dataTypeSpecific.enumDescFunc = FPRMSGApplicationProcessState_EnumDescriptor,
  1178. .number = FPRMSGApplicationInfo_FieldNumber_ApplicationProcessState,
  1179. .hasIndex = 5,
  1180. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, applicationProcessState),
  1181. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  1182. .dataType = GPBDataTypeEnum,
  1183. },
  1184. {
  1185. .name = "customAttributes",
  1186. .dataTypeSpecific.clazz = Nil,
  1187. .number = FPRMSGApplicationInfo_FieldNumber_CustomAttributes,
  1188. .hasIndex = GPBNoHasBit,
  1189. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, customAttributes),
  1190. .flags = GPBFieldMapKeyString,
  1191. .dataType = GPBDataTypeString,
  1192. },
  1193. {
  1194. .name = "webAppInfo",
  1195. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGWebApplicationInfo),
  1196. .number = FPRMSGApplicationInfo_FieldNumber_WebAppInfo,
  1197. .hasIndex = 4,
  1198. .offset = (uint32_t)offsetof(FPRMSGApplicationInfo__storage_, webAppInfo),
  1199. .flags = GPBFieldOptional,
  1200. .dataType = GPBDataTypeMessage,
  1201. },
  1202. };
  1203. GPBDescriptor *localDescriptor =
  1204. [GPBDescriptor allocDescriptorForClass:[FPRMSGApplicationInfo class]
  1205. rootClass:[FPRMSGPerfMetricRoot class]
  1206. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1207. fields:fields
  1208. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1209. storageSize:sizeof(FPRMSGApplicationInfo__storage_)
  1210. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1211. #if defined(DEBUG) && DEBUG
  1212. NSAssert(descriptor == nil, @"Startup recursed!");
  1213. #endif // DEBUG
  1214. descriptor = localDescriptor;
  1215. }
  1216. return descriptor;
  1217. }
  1218. @end
  1219. #pragma mark - FPRMSGWebApplicationInfo
  1220. @implementation FPRMSGWebApplicationInfo
  1221. @dynamic hasSdkVersion, sdkVersion;
  1222. @dynamic hasPageURL, pageURL;
  1223. @dynamic hasServiceWorkerStatus, serviceWorkerStatus;
  1224. @dynamic hasVisibilityState, visibilityState;
  1225. @dynamic hasEffectiveConnectionType, effectiveConnectionType;
  1226. typedef struct FPRMSGWebApplicationInfo__storage_ {
  1227. uint32_t _has_storage_[1];
  1228. FPRMSGServiceWorkerStatus serviceWorkerStatus;
  1229. FPRMSGVisibilityState visibilityState;
  1230. FPRMSGEffectiveConnectionType effectiveConnectionType;
  1231. NSString *sdkVersion;
  1232. NSString *pageURL;
  1233. } FPRMSGWebApplicationInfo__storage_;
  1234. // This method is threadsafe because it is initially called
  1235. // in +initialize for each subclass.
  1236. + (GPBDescriptor *)descriptor {
  1237. static GPBDescriptor *descriptor = nil;
  1238. if (!descriptor) {
  1239. static GPBMessageFieldDescription fields[] = {
  1240. {
  1241. .name = "sdkVersion",
  1242. .dataTypeSpecific.clazz = Nil,
  1243. .number = FPRMSGWebApplicationInfo_FieldNumber_SdkVersion,
  1244. .hasIndex = 0,
  1245. .offset = (uint32_t)offsetof(FPRMSGWebApplicationInfo__storage_, sdkVersion),
  1246. .flags = GPBFieldOptional,
  1247. .dataType = GPBDataTypeString,
  1248. },
  1249. {
  1250. .name = "pageURL",
  1251. .dataTypeSpecific.clazz = Nil,
  1252. .number = FPRMSGWebApplicationInfo_FieldNumber_PageURL,
  1253. .hasIndex = 1,
  1254. .offset = (uint32_t)offsetof(FPRMSGWebApplicationInfo__storage_, pageURL),
  1255. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldTextFormatNameCustom),
  1256. .dataType = GPBDataTypeString,
  1257. },
  1258. {
  1259. .name = "serviceWorkerStatus",
  1260. .dataTypeSpecific.enumDescFunc = FPRMSGServiceWorkerStatus_EnumDescriptor,
  1261. .number = FPRMSGWebApplicationInfo_FieldNumber_ServiceWorkerStatus,
  1262. .hasIndex = 2,
  1263. .offset = (uint32_t)offsetof(FPRMSGWebApplicationInfo__storage_, serviceWorkerStatus),
  1264. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  1265. .dataType = GPBDataTypeEnum,
  1266. },
  1267. {
  1268. .name = "visibilityState",
  1269. .dataTypeSpecific.enumDescFunc = FPRMSGVisibilityState_EnumDescriptor,
  1270. .number = FPRMSGWebApplicationInfo_FieldNumber_VisibilityState,
  1271. .hasIndex = 3,
  1272. .offset = (uint32_t)offsetof(FPRMSGWebApplicationInfo__storage_, visibilityState),
  1273. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  1274. .dataType = GPBDataTypeEnum,
  1275. },
  1276. {
  1277. .name = "effectiveConnectionType",
  1278. .dataTypeSpecific.enumDescFunc = FPRMSGEffectiveConnectionType_EnumDescriptor,
  1279. .number = FPRMSGWebApplicationInfo_FieldNumber_EffectiveConnectionType,
  1280. .hasIndex = 4,
  1281. .offset = (uint32_t)offsetof(FPRMSGWebApplicationInfo__storage_, effectiveConnectionType),
  1282. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  1283. .dataType = GPBDataTypeEnum,
  1284. },
  1285. };
  1286. GPBDescriptor *localDescriptor =
  1287. [GPBDescriptor allocDescriptorForClass:[FPRMSGWebApplicationInfo class]
  1288. rootClass:[FPRMSGPerfMetricRoot class]
  1289. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1290. fields:fields
  1291. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1292. storageSize:sizeof(FPRMSGWebApplicationInfo__storage_)
  1293. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1294. #if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  1295. static const char *extraTextFormatInfo =
  1296. "\001\002\004\241!!\000";
  1297. [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
  1298. #endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
  1299. #if defined(DEBUG) && DEBUG
  1300. NSAssert(descriptor == nil, @"Startup recursed!");
  1301. #endif // DEBUG
  1302. descriptor = localDescriptor;
  1303. }
  1304. return descriptor;
  1305. }
  1306. @end
  1307. #pragma mark - FPRMSGAndroidApplicationInfo
  1308. @implementation FPRMSGAndroidApplicationInfo
  1309. @dynamic hasPackageName, packageName;
  1310. @dynamic hasSdkVersion, sdkVersion;
  1311. @dynamic hasVersionName, versionName;
  1312. typedef struct FPRMSGAndroidApplicationInfo__storage_ {
  1313. uint32_t _has_storage_[1];
  1314. NSString *packageName;
  1315. NSString *sdkVersion;
  1316. NSString *versionName;
  1317. } FPRMSGAndroidApplicationInfo__storage_;
  1318. // This method is threadsafe because it is initially called
  1319. // in +initialize for each subclass.
  1320. + (GPBDescriptor *)descriptor {
  1321. static GPBDescriptor *descriptor = nil;
  1322. if (!descriptor) {
  1323. static GPBMessageFieldDescription fields[] = {
  1324. {
  1325. .name = "packageName",
  1326. .dataTypeSpecific.clazz = Nil,
  1327. .number = FPRMSGAndroidApplicationInfo_FieldNumber_PackageName,
  1328. .hasIndex = 0,
  1329. .offset = (uint32_t)offsetof(FPRMSGAndroidApplicationInfo__storage_, packageName),
  1330. .flags = GPBFieldOptional,
  1331. .dataType = GPBDataTypeString,
  1332. },
  1333. {
  1334. .name = "sdkVersion",
  1335. .dataTypeSpecific.clazz = Nil,
  1336. .number = FPRMSGAndroidApplicationInfo_FieldNumber_SdkVersion,
  1337. .hasIndex = 1,
  1338. .offset = (uint32_t)offsetof(FPRMSGAndroidApplicationInfo__storage_, sdkVersion),
  1339. .flags = GPBFieldOptional,
  1340. .dataType = GPBDataTypeString,
  1341. },
  1342. {
  1343. .name = "versionName",
  1344. .dataTypeSpecific.clazz = Nil,
  1345. .number = FPRMSGAndroidApplicationInfo_FieldNumber_VersionName,
  1346. .hasIndex = 2,
  1347. .offset = (uint32_t)offsetof(FPRMSGAndroidApplicationInfo__storage_, versionName),
  1348. .flags = GPBFieldOptional,
  1349. .dataType = GPBDataTypeString,
  1350. },
  1351. };
  1352. GPBDescriptor *localDescriptor =
  1353. [GPBDescriptor allocDescriptorForClass:[FPRMSGAndroidApplicationInfo class]
  1354. rootClass:[FPRMSGPerfMetricRoot class]
  1355. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1356. fields:fields
  1357. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1358. storageSize:sizeof(FPRMSGAndroidApplicationInfo__storage_)
  1359. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1360. #if defined(DEBUG) && DEBUG
  1361. NSAssert(descriptor == nil, @"Startup recursed!");
  1362. #endif // DEBUG
  1363. descriptor = localDescriptor;
  1364. }
  1365. return descriptor;
  1366. }
  1367. @end
  1368. #pragma mark - FPRMSGNetworkConnectionInfo
  1369. @implementation FPRMSGNetworkConnectionInfo
  1370. @dynamic hasNetworkType, networkType;
  1371. @dynamic hasMobileSubtype, mobileSubtype;
  1372. typedef struct FPRMSGNetworkConnectionInfo__storage_ {
  1373. uint32_t _has_storage_[1];
  1374. FPRMSGNetworkConnectionInfo_NetworkType networkType;
  1375. FPRMSGNetworkConnectionInfo_MobileSubtype mobileSubtype;
  1376. } FPRMSGNetworkConnectionInfo__storage_;
  1377. // This method is threadsafe because it is initially called
  1378. // in +initialize for each subclass.
  1379. + (GPBDescriptor *)descriptor {
  1380. static GPBDescriptor *descriptor = nil;
  1381. if (!descriptor) {
  1382. static GPBMessageFieldDescriptionWithDefault fields[] = {
  1383. {
  1384. .defaultValue.valueEnum = FPRMSGNetworkConnectionInfo_NetworkType_None,
  1385. .core.name = "networkType",
  1386. .core.dataTypeSpecific.enumDescFunc = FPRMSGNetworkConnectionInfo_NetworkType_EnumDescriptor,
  1387. .core.number = FPRMSGNetworkConnectionInfo_FieldNumber_NetworkType,
  1388. .core.hasIndex = 0,
  1389. .core.offset = (uint32_t)offsetof(FPRMSGNetworkConnectionInfo__storage_, networkType),
  1390. .core.flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor),
  1391. .core.dataType = GPBDataTypeEnum,
  1392. },
  1393. {
  1394. .defaultValue.valueEnum = FPRMSGNetworkConnectionInfo_MobileSubtype_UnknownMobileSubtype,
  1395. .core.name = "mobileSubtype",
  1396. .core.dataTypeSpecific.enumDescFunc = FPRMSGNetworkConnectionInfo_MobileSubtype_EnumDescriptor,
  1397. .core.number = FPRMSGNetworkConnectionInfo_FieldNumber_MobileSubtype,
  1398. .core.hasIndex = 1,
  1399. .core.offset = (uint32_t)offsetof(FPRMSGNetworkConnectionInfo__storage_, mobileSubtype),
  1400. .core.flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor),
  1401. .core.dataType = GPBDataTypeEnum,
  1402. },
  1403. };
  1404. GPBDescriptor *localDescriptor =
  1405. [GPBDescriptor allocDescriptorForClass:[FPRMSGNetworkConnectionInfo class]
  1406. rootClass:[FPRMSGPerfMetricRoot class]
  1407. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1408. fields:fields
  1409. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescriptionWithDefault))
  1410. storageSize:sizeof(FPRMSGNetworkConnectionInfo__storage_)
  1411. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown | GPBDescriptorInitializationFlag_FieldsWithDefault)];
  1412. #if defined(DEBUG) && DEBUG
  1413. NSAssert(descriptor == nil, @"Startup recursed!");
  1414. #endif // DEBUG
  1415. descriptor = localDescriptor;
  1416. }
  1417. return descriptor;
  1418. }
  1419. @end
  1420. #pragma mark - Enum FPRMSGNetworkConnectionInfo_NetworkType
  1421. GPBEnumDescriptor *FPRMSGNetworkConnectionInfo_NetworkType_EnumDescriptor(void) {
  1422. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  1423. if (!descriptor) {
  1424. static const char *valueNames =
  1425. "None\000Mobile\000Wifi\000MobileMms\000MobileSupl\000Mo"
  1426. "bileDun\000MobileHipri\000Wimax\000Bluetooth\000Dumm"
  1427. "y\000Ethernet\000MobileFota\000MobileIms\000MobileCb"
  1428. "s\000WifiP2P\000MobileIa\000MobileEmergency\000Proxy"
  1429. "\000Vpn\000";
  1430. static const int32_t values[] = {
  1431. FPRMSGNetworkConnectionInfo_NetworkType_None,
  1432. FPRMSGNetworkConnectionInfo_NetworkType_Mobile,
  1433. FPRMSGNetworkConnectionInfo_NetworkType_Wifi,
  1434. FPRMSGNetworkConnectionInfo_NetworkType_MobileMms,
  1435. FPRMSGNetworkConnectionInfo_NetworkType_MobileSupl,
  1436. FPRMSGNetworkConnectionInfo_NetworkType_MobileDun,
  1437. FPRMSGNetworkConnectionInfo_NetworkType_MobileHipri,
  1438. FPRMSGNetworkConnectionInfo_NetworkType_Wimax,
  1439. FPRMSGNetworkConnectionInfo_NetworkType_Bluetooth,
  1440. FPRMSGNetworkConnectionInfo_NetworkType_Dummy,
  1441. FPRMSGNetworkConnectionInfo_NetworkType_Ethernet,
  1442. FPRMSGNetworkConnectionInfo_NetworkType_MobileFota,
  1443. FPRMSGNetworkConnectionInfo_NetworkType_MobileIms,
  1444. FPRMSGNetworkConnectionInfo_NetworkType_MobileCbs,
  1445. FPRMSGNetworkConnectionInfo_NetworkType_WifiP2P,
  1446. FPRMSGNetworkConnectionInfo_NetworkType_MobileIa,
  1447. FPRMSGNetworkConnectionInfo_NetworkType_MobileEmergency,
  1448. FPRMSGNetworkConnectionInfo_NetworkType_Proxy,
  1449. FPRMSGNetworkConnectionInfo_NetworkType_Vpn,
  1450. };
  1451. static const char *extraTextFormatInfo = "\001\016d\203\000";
  1452. GPBEnumDescriptor *worker =
  1453. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGNetworkConnectionInfo_NetworkType)
  1454. valueNames:valueNames
  1455. values:values
  1456. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  1457. enumVerifier:FPRMSGNetworkConnectionInfo_NetworkType_IsValidValue
  1458. extraTextFormatInfo:extraTextFormatInfo];
  1459. GPBEnumDescriptor *expected = nil;
  1460. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  1461. [worker release];
  1462. }
  1463. }
  1464. return descriptor;
  1465. }
  1466. BOOL FPRMSGNetworkConnectionInfo_NetworkType_IsValidValue(int32_t value__) {
  1467. switch (value__) {
  1468. case FPRMSGNetworkConnectionInfo_NetworkType_None:
  1469. case FPRMSGNetworkConnectionInfo_NetworkType_Mobile:
  1470. case FPRMSGNetworkConnectionInfo_NetworkType_Wifi:
  1471. case FPRMSGNetworkConnectionInfo_NetworkType_MobileMms:
  1472. case FPRMSGNetworkConnectionInfo_NetworkType_MobileSupl:
  1473. case FPRMSGNetworkConnectionInfo_NetworkType_MobileDun:
  1474. case FPRMSGNetworkConnectionInfo_NetworkType_MobileHipri:
  1475. case FPRMSGNetworkConnectionInfo_NetworkType_Wimax:
  1476. case FPRMSGNetworkConnectionInfo_NetworkType_Bluetooth:
  1477. case FPRMSGNetworkConnectionInfo_NetworkType_Dummy:
  1478. case FPRMSGNetworkConnectionInfo_NetworkType_Ethernet:
  1479. case FPRMSGNetworkConnectionInfo_NetworkType_MobileFota:
  1480. case FPRMSGNetworkConnectionInfo_NetworkType_MobileIms:
  1481. case FPRMSGNetworkConnectionInfo_NetworkType_MobileCbs:
  1482. case FPRMSGNetworkConnectionInfo_NetworkType_WifiP2P:
  1483. case FPRMSGNetworkConnectionInfo_NetworkType_MobileIa:
  1484. case FPRMSGNetworkConnectionInfo_NetworkType_MobileEmergency:
  1485. case FPRMSGNetworkConnectionInfo_NetworkType_Proxy:
  1486. case FPRMSGNetworkConnectionInfo_NetworkType_Vpn:
  1487. return YES;
  1488. default:
  1489. return NO;
  1490. }
  1491. }
  1492. #pragma mark - Enum FPRMSGNetworkConnectionInfo_MobileSubtype
  1493. GPBEnumDescriptor *FPRMSGNetworkConnectionInfo_MobileSubtype_EnumDescriptor(void) {
  1494. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  1495. if (!descriptor) {
  1496. static const char *valueNames =
  1497. "UnknownMobileSubtype\000Gprs\000Edge\000Umts\000Cdma"
  1498. "\000Evdo0\000EvdoA\000Rtt\000Hsdpa\000Hsupa\000Hspa\000Iden\000E"
  1499. "vdoB\000Lte\000Ehrpd\000Hspap\000Gsm\000TdScdma\000Iwlan\000L"
  1500. "teCa\000Combined\000";
  1501. static const int32_t values[] = {
  1502. FPRMSGNetworkConnectionInfo_MobileSubtype_UnknownMobileSubtype,
  1503. FPRMSGNetworkConnectionInfo_MobileSubtype_Gprs,
  1504. FPRMSGNetworkConnectionInfo_MobileSubtype_Edge,
  1505. FPRMSGNetworkConnectionInfo_MobileSubtype_Umts,
  1506. FPRMSGNetworkConnectionInfo_MobileSubtype_Cdma,
  1507. FPRMSGNetworkConnectionInfo_MobileSubtype_Evdo0,
  1508. FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoA,
  1509. FPRMSGNetworkConnectionInfo_MobileSubtype_Rtt,
  1510. FPRMSGNetworkConnectionInfo_MobileSubtype_Hsdpa,
  1511. FPRMSGNetworkConnectionInfo_MobileSubtype_Hsupa,
  1512. FPRMSGNetworkConnectionInfo_MobileSubtype_Hspa,
  1513. FPRMSGNetworkConnectionInfo_MobileSubtype_Iden,
  1514. FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoB,
  1515. FPRMSGNetworkConnectionInfo_MobileSubtype_Lte,
  1516. FPRMSGNetworkConnectionInfo_MobileSubtype_Ehrpd,
  1517. FPRMSGNetworkConnectionInfo_MobileSubtype_Hspap,
  1518. FPRMSGNetworkConnectionInfo_MobileSubtype_Gsm,
  1519. FPRMSGNetworkConnectionInfo_MobileSubtype_TdScdma,
  1520. FPRMSGNetworkConnectionInfo_MobileSubtype_Iwlan,
  1521. FPRMSGNetworkConnectionInfo_MobileSubtype_LteCa,
  1522. FPRMSGNetworkConnectionInfo_MobileSubtype_Combined,
  1523. };
  1524. static const char *extraTextFormatInfo = "\001\005d\201\000";
  1525. GPBEnumDescriptor *worker =
  1526. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGNetworkConnectionInfo_MobileSubtype)
  1527. valueNames:valueNames
  1528. values:values
  1529. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  1530. enumVerifier:FPRMSGNetworkConnectionInfo_MobileSubtype_IsValidValue
  1531. extraTextFormatInfo:extraTextFormatInfo];
  1532. GPBEnumDescriptor *expected = nil;
  1533. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  1534. [worker release];
  1535. }
  1536. }
  1537. return descriptor;
  1538. }
  1539. BOOL FPRMSGNetworkConnectionInfo_MobileSubtype_IsValidValue(int32_t value__) {
  1540. switch (value__) {
  1541. case FPRMSGNetworkConnectionInfo_MobileSubtype_UnknownMobileSubtype:
  1542. case FPRMSGNetworkConnectionInfo_MobileSubtype_Gprs:
  1543. case FPRMSGNetworkConnectionInfo_MobileSubtype_Edge:
  1544. case FPRMSGNetworkConnectionInfo_MobileSubtype_Umts:
  1545. case FPRMSGNetworkConnectionInfo_MobileSubtype_Cdma:
  1546. case FPRMSGNetworkConnectionInfo_MobileSubtype_Evdo0:
  1547. case FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoA:
  1548. case FPRMSGNetworkConnectionInfo_MobileSubtype_Rtt:
  1549. case FPRMSGNetworkConnectionInfo_MobileSubtype_Hsdpa:
  1550. case FPRMSGNetworkConnectionInfo_MobileSubtype_Hsupa:
  1551. case FPRMSGNetworkConnectionInfo_MobileSubtype_Hspa:
  1552. case FPRMSGNetworkConnectionInfo_MobileSubtype_Iden:
  1553. case FPRMSGNetworkConnectionInfo_MobileSubtype_EvdoB:
  1554. case FPRMSGNetworkConnectionInfo_MobileSubtype_Lte:
  1555. case FPRMSGNetworkConnectionInfo_MobileSubtype_Ehrpd:
  1556. case FPRMSGNetworkConnectionInfo_MobileSubtype_Hspap:
  1557. case FPRMSGNetworkConnectionInfo_MobileSubtype_Gsm:
  1558. case FPRMSGNetworkConnectionInfo_MobileSubtype_TdScdma:
  1559. case FPRMSGNetworkConnectionInfo_MobileSubtype_Iwlan:
  1560. case FPRMSGNetworkConnectionInfo_MobileSubtype_LteCa:
  1561. case FPRMSGNetworkConnectionInfo_MobileSubtype_Combined:
  1562. return YES;
  1563. default:
  1564. return NO;
  1565. }
  1566. }
  1567. #pragma mark - FPRMSGIosApplicationInfo
  1568. @implementation FPRMSGIosApplicationInfo
  1569. @dynamic hasSdkVersion, sdkVersion;
  1570. @dynamic hasBundleShortVersion, bundleShortVersion;
  1571. @dynamic hasMccMnc, mccMnc;
  1572. @dynamic hasNetworkConnectionInfo, networkConnectionInfo;
  1573. typedef struct FPRMSGIosApplicationInfo__storage_ {
  1574. uint32_t _has_storage_[1];
  1575. NSString *sdkVersion;
  1576. NSString *bundleShortVersion;
  1577. NSString *mccMnc;
  1578. FPRMSGNetworkConnectionInfo *networkConnectionInfo;
  1579. } FPRMSGIosApplicationInfo__storage_;
  1580. // This method is threadsafe because it is initially called
  1581. // in +initialize for each subclass.
  1582. + (GPBDescriptor *)descriptor {
  1583. static GPBDescriptor *descriptor = nil;
  1584. if (!descriptor) {
  1585. static GPBMessageFieldDescription fields[] = {
  1586. {
  1587. .name = "sdkVersion",
  1588. .dataTypeSpecific.clazz = Nil,
  1589. .number = FPRMSGIosApplicationInfo_FieldNumber_SdkVersion,
  1590. .hasIndex = 0,
  1591. .offset = (uint32_t)offsetof(FPRMSGIosApplicationInfo__storage_, sdkVersion),
  1592. .flags = GPBFieldOptional,
  1593. .dataType = GPBDataTypeString,
  1594. },
  1595. {
  1596. .name = "bundleShortVersion",
  1597. .dataTypeSpecific.clazz = Nil,
  1598. .number = FPRMSGIosApplicationInfo_FieldNumber_BundleShortVersion,
  1599. .hasIndex = 1,
  1600. .offset = (uint32_t)offsetof(FPRMSGIosApplicationInfo__storage_, bundleShortVersion),
  1601. .flags = GPBFieldOptional,
  1602. .dataType = GPBDataTypeString,
  1603. },
  1604. {
  1605. .name = "mccMnc",
  1606. .dataTypeSpecific.clazz = Nil,
  1607. .number = FPRMSGIosApplicationInfo_FieldNumber_MccMnc,
  1608. .hasIndex = 2,
  1609. .offset = (uint32_t)offsetof(FPRMSGIosApplicationInfo__storage_, mccMnc),
  1610. .flags = GPBFieldOptional,
  1611. .dataType = GPBDataTypeString,
  1612. },
  1613. {
  1614. .name = "networkConnectionInfo",
  1615. .dataTypeSpecific.clazz = GPBObjCClass(FPRMSGNetworkConnectionInfo),
  1616. .number = FPRMSGIosApplicationInfo_FieldNumber_NetworkConnectionInfo,
  1617. .hasIndex = 3,
  1618. .offset = (uint32_t)offsetof(FPRMSGIosApplicationInfo__storage_, networkConnectionInfo),
  1619. .flags = GPBFieldOptional,
  1620. .dataType = GPBDataTypeMessage,
  1621. },
  1622. };
  1623. GPBDescriptor *localDescriptor =
  1624. [GPBDescriptor allocDescriptorForClass:[FPRMSGIosApplicationInfo class]
  1625. rootClass:[FPRMSGPerfMetricRoot class]
  1626. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1627. fields:fields
  1628. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1629. storageSize:sizeof(FPRMSGIosApplicationInfo__storage_)
  1630. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1631. #if defined(DEBUG) && DEBUG
  1632. NSAssert(descriptor == nil, @"Startup recursed!");
  1633. #endif // DEBUG
  1634. descriptor = localDescriptor;
  1635. }
  1636. return descriptor;
  1637. }
  1638. @end
  1639. #pragma mark - FPRMSGTransportInfo
  1640. @implementation FPRMSGTransportInfo
  1641. @dynamic hasDispatchDestination, dispatchDestination;
  1642. typedef struct FPRMSGTransportInfo__storage_ {
  1643. uint32_t _has_storage_[1];
  1644. FPRMSGTransportInfo_DispatchDestination dispatchDestination;
  1645. } FPRMSGTransportInfo__storage_;
  1646. // This method is threadsafe because it is initially called
  1647. // in +initialize for each subclass.
  1648. + (GPBDescriptor *)descriptor {
  1649. static GPBDescriptor *descriptor = nil;
  1650. if (!descriptor) {
  1651. static GPBMessageFieldDescription fields[] = {
  1652. {
  1653. .name = "dispatchDestination",
  1654. .dataTypeSpecific.enumDescFunc = FPRMSGTransportInfo_DispatchDestination_EnumDescriptor,
  1655. .number = FPRMSGTransportInfo_FieldNumber_DispatchDestination,
  1656. .hasIndex = 0,
  1657. .offset = (uint32_t)offsetof(FPRMSGTransportInfo__storage_, dispatchDestination),
  1658. .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
  1659. .dataType = GPBDataTypeEnum,
  1660. },
  1661. };
  1662. GPBDescriptor *localDescriptor =
  1663. [GPBDescriptor allocDescriptorForClass:[FPRMSGTransportInfo class]
  1664. rootClass:[FPRMSGPerfMetricRoot class]
  1665. file:FPRMSGPerfMetricRoot_FileDescriptor()
  1666. fields:fields
  1667. fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
  1668. storageSize:sizeof(FPRMSGTransportInfo__storage_)
  1669. flags:(GPBDescriptorInitializationFlags)(GPBDescriptorInitializationFlag_UsesClassRefs | GPBDescriptorInitializationFlag_Proto3OptionalKnown)];
  1670. #if defined(DEBUG) && DEBUG
  1671. NSAssert(descriptor == nil, @"Startup recursed!");
  1672. #endif // DEBUG
  1673. descriptor = localDescriptor;
  1674. }
  1675. return descriptor;
  1676. }
  1677. @end
  1678. #pragma mark - Enum FPRMSGTransportInfo_DispatchDestination
  1679. GPBEnumDescriptor *FPRMSGTransportInfo_DispatchDestination_EnumDescriptor(void) {
  1680. static _Atomic(GPBEnumDescriptor*) descriptor = nil;
  1681. if (!descriptor) {
  1682. static const char *valueNames =
  1683. "SourceUnknown\000FlLegacyV1\000";
  1684. static const int32_t values[] = {
  1685. FPRMSGTransportInfo_DispatchDestination_SourceUnknown,
  1686. FPRMSGTransportInfo_DispatchDestination_FlLegacyV1,
  1687. };
  1688. GPBEnumDescriptor *worker =
  1689. [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(FPRMSGTransportInfo_DispatchDestination)
  1690. valueNames:valueNames
  1691. values:values
  1692. count:(uint32_t)(sizeof(values) / sizeof(int32_t))
  1693. enumVerifier:FPRMSGTransportInfo_DispatchDestination_IsValidValue];
  1694. GPBEnumDescriptor *expected = nil;
  1695. if (!atomic_compare_exchange_strong(&descriptor, &expected, worker)) {
  1696. [worker release];
  1697. }
  1698. }
  1699. return descriptor;
  1700. }
  1701. BOOL FPRMSGTransportInfo_DispatchDestination_IsValidValue(int32_t value__) {
  1702. switch (value__) {
  1703. case FPRMSGTransportInfo_DispatchDestination_SourceUnknown:
  1704. case FPRMSGTransportInfo_DispatchDestination_FlLegacyV1:
  1705. return YES;
  1706. default:
  1707. return NO;
  1708. }
  1709. }
  1710. #pragma clang diagnostic pop
  1711. // @@protoc_insertion_point(global_scope)