1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
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 */
15
16import { QueryEnum } from './QueryEnum';
17import { cpuDataReceiver, searchDataHandler } from '../CpuDataReceiver';
18import { processDataReceiver } from '../process/ProcessDataReceiver';
19import { threadDataReceiver } from '../process//ThreadDataReceiver';
20import { funcDataReceiver } from '../process//FuncDataReceiver';
21import { hiperfCpuDataReceiver } from '../hiperf/HiperfCpuDataReceiver';
22import { hiperfProcessDataReceiver } from '../hiperf/HiperfProcessDataReceiver';
23import { hiperfThreadDataReceiver } from '../hiperf/HiperfThreadDataReceiver';
24import { cpuStateReceiver } from '../cpu/CpuStateReceiver';
25import { cpuFreqLimitReceiver } from '../cpu/CpuFreqLimitDataReceiver';
26import { clockDataReceiver } from '../ClockDataReceiver';
27import { irqDataReceiver } from '../IrqDataReceiver';
28import { processExpectedDataReceiver } from '../process/ProcessExpectedDataReceiver';
29import { processActualDataReceiver } from '../process//ProcessActualDataReceiver';
30import { hiPerfCallChartDataHandler, hiPerfCallStackCacheHandler } from '../hiperf/HiperfCallChartReceiver';
31import { virtualMemoryDataReceiver } from '../VirtualMemoryDataReceiver';
32import { processMemDataReceiver } from '../process//ProcessMemDataReceiver';
33import { processStartupDataReceiver } from '../process//ProcessStartupDataReceiver';
34import { processSoInitDataReceiver } from '../process//ProcessSoInitDataReceiver';
35import { processDeliverInputEventDataReceiver } from '../process//ProcessDeliverInputEventDataReceiver';
36import { processTouchEventDispatchDataReceiver } from '../process//ProcessTouchEventDispatchDataReceiver';
37import { xpowerDataReceiver } from '../XpowerDataReceiver';
38
39import {
40  dmaDataReceiver,
41  gpuDataReceiver,
42  gpuMemoryDataReceiver,
43  gpuResourceDataReceiver,
44  gpuTotalDataReceiver,
45  gpuWindowDataReceiver,
46  purgeableDataReceiver,
47  sMapsDataReceiver,
48  shmDataReceiver,
49  abilityDmaDataReceiver,
50  abilityGpuMemoryDataReceiver,
51  abilityPurgeableDataReceiver,
52} from '../VmTrackerDataReceiver';
53import {
54  abilityBytesInTraceDataReceiver,
55  abilityBytesOutTraceDataReceiver,
56  abilityMemoryUsedDataReceiver,
57  abilityPacketInTraceDataReceiver,
58  abilityPacketsOutTraceDataReceiver,
59  cpuAbilityMonitorDataReceiver,
60  cpuAbilitySystemDataReceiver,
61  cpuAbilityUserDataReceiver,
62  abilityBytesReadDataReceiver,
63  abilityBytesWrittenDataReceiver,
64  abilityReadOpsDataReceiver,
65  abilityWrittenOpsDataReceiver,
66} from '../AbilityMonitorReceiver';
67import { hiSysEventDataReceiver } from '../HiSysEventDataReceiver';
68import { logDataReceiver } from '../LogDataReceiver';
69import { cpuProfilerDataReceiver } from '../ArkTsReceiver';
70import { frameActualReceiver, frameExpectedReceiver } from '../FrameJanksReceiver';
71import { diskIoReceiver, eBPFVmReceiver, fileSystemDataReceiver } from '../EBPFReceiver';
72import { nativeMemoryDataHandler } from '../NativeMemoryDataReceiver';
73import { frameAnimationReceiver, frameDynamicReceiver, frameSpacingReceiver } from '../FrameDynamicEffectReceiver';
74import {
75  energySysEventReceiver,
76  hiSysEnergyAnomalyDataReceiver,
77  hiSysEnergyPowerReceiver,
78  hiSysEnergyStateReceiver,
79} from '../EnergySysEventReceiver';
80import { clearMemoryCache } from './AllMemoryCache';
81import { cpuFreqDataReceiver } from '../cpu/CpuFreqDataReceiver';
82import { lostFrameReceiver } from './../LostFrameReceiver';
83import { sliceReceiver, sliceSPTReceiver } from '../SliceReceiver';
84import { dmaFenceReceiver } from './../dmaFenceReceiver';
85import { hangDataReceiver } from '../HangDataReceiver';
86
87// @ts-ignore
88const traficHandlers: Map<number, unknown> = new Map<number, unknown>([]); // @ts-ignore
89export const execProtoForWorker = (data: unknown, proc: Function): void => traficHandlers.get(data.name)?.(data, proc);
90
91traficHandlers.set(QueryEnum.ClearMemoryCache, clearMemoryCache);
92traficHandlers.set(QueryEnum.CpuData, cpuDataReceiver);
93traficHandlers.set(QueryEnum.SearchCpuData, searchDataHandler);
94traficHandlers.set(QueryEnum.CpuFreqData, cpuFreqDataReceiver);
95traficHandlers.set(QueryEnum.CpuStateData, cpuStateReceiver);
96traficHandlers.set(QueryEnum.CpuFreqLimitData, cpuFreqLimitReceiver);
97traficHandlers.set(QueryEnum.ProcessData, processDataReceiver);
98traficHandlers.set(QueryEnum.ThreadData, threadDataReceiver);
99traficHandlers.set(QueryEnum.FuncData, funcDataReceiver);
100traficHandlers.set(QueryEnum.HiperfCallChart, hiPerfCallChartDataHandler);
101traficHandlers.set(QueryEnum.HiperfCallStack, hiPerfCallStackCacheHandler);
102traficHandlers.set(QueryEnum.HiperfCpuData, hiperfCpuDataReceiver);
103traficHandlers.set(QueryEnum.HiperfProcessData, hiperfProcessDataReceiver);
104traficHandlers.set(QueryEnum.HiperfThreadData, hiperfThreadDataReceiver);
105traficHandlers.set(QueryEnum.NativeMemoryChartCacheNormal, nativeMemoryDataHandler);
106traficHandlers.set(QueryEnum.NativeMemoryChartCacheStatistic, nativeMemoryDataHandler);
107traficHandlers.set(QueryEnum.NativeMemoryChartData, nativeMemoryDataHandler);
108traficHandlers.set(QueryEnum.HangData, hangDataReceiver);
109traficHandlers.set(QueryEnum.ClockData, clockDataReceiver);
110traficHandlers.set(QueryEnum.IrqData, irqDataReceiver);
111traficHandlers.set(QueryEnum.VirtualMemoryData, virtualMemoryDataReceiver);
112traficHandlers.set(QueryEnum.ProcessMemData, processMemDataReceiver);
113traficHandlers.set(QueryEnum.ProcessStartupData, processStartupDataReceiver);
114traficHandlers.set(QueryEnum.ProcessSoInitData, processSoInitDataReceiver);
115traficHandlers.set(QueryEnum.processExpectedData, processExpectedDataReceiver);
116traficHandlers.set(QueryEnum.processActualData, processActualDataReceiver);
117traficHandlers.set(QueryEnum.processDeliverInputEventData, processDeliverInputEventDataReceiver);
118traficHandlers.set(QueryEnum.processTouchEventDispatchData, processTouchEventDispatchDataReceiver);
119traficHandlers.set(QueryEnum.VmTrackerSmapsData, sMapsDataReceiver);
120traficHandlers.set(QueryEnum.VmTrackerDmaData, dmaDataReceiver);
121traficHandlers.set(QueryEnum.VmTrackerGpuMemoryData, gpuMemoryDataReceiver);
122traficHandlers.set(QueryEnum.VmTrackerGpuData, gpuDataReceiver);
123traficHandlers.set(QueryEnum.VmTrackerGpuResourceData, gpuResourceDataReceiver);
124traficHandlers.set(QueryEnum.VmTrackerGpuTotalData, gpuTotalDataReceiver);
125traficHandlers.set(QueryEnum.VmTrackerGpuWindowData, gpuWindowDataReceiver);
126traficHandlers.set(QueryEnum.VmTrackerShmData, shmDataReceiver);
127traficHandlers.set(QueryEnum.VmTrackerPurgeableData, purgeableDataReceiver);
128traficHandlers.set(QueryEnum.AbilityMemoryUsedData, abilityMemoryUsedDataReceiver);
129traficHandlers.set(QueryEnum.CpuAbilityUserData, cpuAbilityUserDataReceiver);
130traficHandlers.set(QueryEnum.CpuAbilitySystemData, cpuAbilitySystemDataReceiver);
131traficHandlers.set(QueryEnum.CpuAbilityMonitorData, cpuAbilityMonitorDataReceiver);
132traficHandlers.set(QueryEnum.AbilityBytesReadData, abilityBytesReadDataReceiver);
133traficHandlers.set(QueryEnum.AbilityBytesWrittenData, abilityBytesWrittenDataReceiver);
134traficHandlers.set(QueryEnum.AbilityReadOpsData, abilityReadOpsDataReceiver);
135traficHandlers.set(QueryEnum.AbilityWrittenOpsData, abilityWrittenOpsDataReceiver);
136traficHandlers.set(QueryEnum.AbilityBytesInTraceData, abilityBytesInTraceDataReceiver);
137traficHandlers.set(QueryEnum.AbilityBytesOutTraceData, abilityBytesOutTraceDataReceiver);
138traficHandlers.set(QueryEnum.AbilityPacketInTraceData, abilityPacketInTraceDataReceiver);
139traficHandlers.set(QueryEnum.AbilityPacketsOutTraceData, abilityPacketsOutTraceDataReceiver);
140traficHandlers.set(QueryEnum.AbilityPurgeableData, abilityPurgeableDataReceiver);
141traficHandlers.set(QueryEnum.AbilityDmaData, abilityDmaDataReceiver);
142traficHandlers.set(QueryEnum.AbilityGpuMemoryData, abilityGpuMemoryDataReceiver);
143traficHandlers.set(QueryEnum.HiSysEventData, hiSysEventDataReceiver);
144traficHandlers.set(QueryEnum.HilogData, logDataReceiver);
145traficHandlers.set(QueryEnum.FileSystemData, fileSystemDataReceiver);
146traficHandlers.set(QueryEnum.DiskIoData, diskIoReceiver);
147traficHandlers.set(QueryEnum.EBPFVm, eBPFVmReceiver);
148traficHandlers.set(QueryEnum.CpuProfilerData, cpuProfilerDataReceiver);
149traficHandlers.set(QueryEnum.FrameExpectedData, frameExpectedReceiver);
150traficHandlers.set(QueryEnum.FrameActualData, frameActualReceiver);
151traficHandlers.set(QueryEnum.EnergyAnomalyData, hiSysEnergyAnomalyDataReceiver);
152traficHandlers.set(QueryEnum.EnergyStateData, hiSysEnergyStateReceiver);
153traficHandlers.set(QueryEnum.EnergyPowerData, hiSysEnergyPowerReceiver);
154traficHandlers.set(QueryEnum.FrameAnimationData, frameAnimationReceiver);
155traficHandlers.set(QueryEnum.FrameDynamicData, frameDynamicReceiver);
156traficHandlers.set(QueryEnum.FrameSpacingData, frameSpacingReceiver);
157traficHandlers.set(QueryEnum.EnergySystemData, energySysEventReceiver);
158traficHandlers.set(QueryEnum.LostFrameData, lostFrameReceiver);
159traficHandlers.set(QueryEnum.SliceData, sliceReceiver);
160traficHandlers.set(QueryEnum.SliceSPTData, sliceSPTReceiver);
161traficHandlers.set(QueryEnum.dmaFenceData, dmaFenceReceiver);
162traficHandlers.set(QueryEnum.SliceChildBoxData, sliceSPTReceiver);
163traficHandlers.set(QueryEnum.ThreadNearData, sliceSPTReceiver);
164traficHandlers.set(QueryEnum.XpowerData, xpowerDataReceiver);