xref: /aosp_15_r20/external/cronet/components/metrics/call_stacks/call_stack_profile_encoding.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2018 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/metrics/call_stacks/call_stack_profile_encoding.h"
6 #include "base/notreached.h"
7 
8 namespace metrics {
9 
ToExecutionContextProcess(CallStackProfileParams::Process process)10 Process ToExecutionContextProcess(CallStackProfileParams::Process process) {
11   switch (process) {
12     case CallStackProfileParams::Process::kUnknown:
13       return UNKNOWN_PROCESS;
14     case CallStackProfileParams::Process::kBrowser:
15       return BROWSER_PROCESS;
16     case CallStackProfileParams::Process::kRenderer:
17       return RENDERER_PROCESS;
18     case CallStackProfileParams::Process::kGpu:
19       return GPU_PROCESS;
20     case CallStackProfileParams::Process::kUtility:
21       return UTILITY_PROCESS;
22     case CallStackProfileParams::Process::kNetworkService:
23       return NETWORK_SERVICE_PROCESS;
24     case CallStackProfileParams::Process::kZygote:
25       return ZYGOTE_PROCESS;
26     case CallStackProfileParams::Process::kSandboxHelper:
27       return SANDBOX_HELPER_PROCESS;
28     case CallStackProfileParams::Process::kPpapiPlugin:
29       return PPAPI_PLUGIN_PROCESS;
30   }
31   NOTREACHED();
32   return UNKNOWN_PROCESS;
33 }
34 
ToExecutionContextThread(CallStackProfileParams::Thread thread)35 Thread ToExecutionContextThread(CallStackProfileParams::Thread thread) {
36   switch (thread) {
37     case CallStackProfileParams::Thread::kUnknown:
38       return UNKNOWN_THREAD;
39     case CallStackProfileParams::Thread::kMain:
40       return MAIN_THREAD;
41     case CallStackProfileParams::Thread::kIo:
42       return IO_THREAD;
43     case CallStackProfileParams::Thread::kCompositor:
44       return COMPOSITOR_THREAD;
45     case CallStackProfileParams::Thread::kServiceWorker:
46       return SERVICE_WORKER_THREAD;
47   }
48   NOTREACHED();
49   return UNKNOWN_THREAD;
50 }
51 
ToSampledProfileTriggerEvent(CallStackProfileParams::Trigger trigger)52 SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
53     CallStackProfileParams::Trigger trigger) {
54   switch (trigger) {
55     case CallStackProfileParams::Trigger::kUnknown:
56       return SampledProfile::UNKNOWN_TRIGGER_EVENT;
57     case CallStackProfileParams::Trigger::kProcessStartup:
58       return SampledProfile::PROCESS_STARTUP;
59     case CallStackProfileParams::Trigger::kJankyTask:
60       return SampledProfile::JANKY_TASK;
61     case CallStackProfileParams::Trigger::kThreadHung:
62       return SampledProfile::THREAD_HUNG;
63     case CallStackProfileParams::Trigger::kPeriodicCollection:
64       return SampledProfile::PERIODIC_COLLECTION;
65     case CallStackProfileParams::Trigger::kPeriodicHeapCollection:
66       return SampledProfile::PERIODIC_HEAP_COLLECTION;
67   }
68   NOTREACHED();
69   return SampledProfile::UNKNOWN_TRIGGER_EVENT;
70 }
71 
72 }  // namespace metrics
73