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 '../xpower/XpowerDataReceiver'; 38import { xpowerWifiDataReceiver } from '../xpower/XpowerWifiDataReceiver'; 39import { xpowerAppDetailDataReceiver } from '../xpower/XpowerAppDetailDataReceiver'; 40import { 41 dmaDataReceiver, 42 gpuDataReceiver, 43 gpuMemoryDataReceiver, 44 gpuResourceDataReceiver, 45 gpuTotalDataReceiver, 46 gpuWindowDataReceiver, 47 purgeableDataReceiver, 48 sMapsDataReceiver, 49 shmDataReceiver, 50 abilityDmaDataReceiver, 51 abilityGpuMemoryDataReceiver, 52 abilityPurgeableDataReceiver, 53} from '../VmTrackerDataReceiver'; 54import { 55 abilityBytesInTraceDataReceiver, 56 abilityBytesOutTraceDataReceiver, 57 abilityMemoryUsedDataReceiver, 58 abilityPacketInTraceDataReceiver, 59 abilityPacketsOutTraceDataReceiver, 60 cpuAbilityMonitorDataReceiver, 61 cpuAbilitySystemDataReceiver, 62 cpuAbilityUserDataReceiver, 63 abilityBytesReadDataReceiver, 64 abilityBytesWrittenDataReceiver, 65 abilityReadOpsDataReceiver, 66 abilityWrittenOpsDataReceiver, 67} from '../AbilityMonitorReceiver'; 68import { hiSysEventDataReceiver } from '../HiSysEventDataReceiver'; 69import { logDataReceiver } from '../LogDataReceiver'; 70import { cpuProfilerDataReceiver } from '../ArkTsReceiver'; 71import { frameActualReceiver, frameExpectedReceiver } from '../FrameJanksReceiver'; 72import { diskIoReceiver, eBPFVmReceiver, fileSystemDataReceiver } from '../EBPFReceiver'; 73import { nativeMemoryDataHandler } from '../NativeMemoryDataReceiver'; 74import { frameAnimationReceiver, frameDynamicReceiver, frameSpacingReceiver } from '../FrameDynamicEffectReceiver'; 75import { 76 energySysEventReceiver, 77 hiSysEnergyAnomalyDataReceiver, 78 hiSysEnergyPowerReceiver, 79 hiSysEnergyStateReceiver, 80} from '../EnergySysEventReceiver'; 81import { clearMemoryCache } from './AllMemoryCache'; 82import { cpuFreqDataReceiver } from '../cpu/CpuFreqDataReceiver'; 83import { lostFrameReceiver } from './../LostFrameReceiver'; 84import { sliceReceiver, sliceSPTReceiver } from '../SliceReceiver'; 85import { dmaFenceReceiver } from './../dmaFenceReceiver'; 86import { hangDataReceiver } from '../HangDataReceiver'; 87import { xpowerStatisticDataReceiver } from '../xpower/XpowerStatisticDataReceiver'; 88import { xpowerDataGpuFreqCountReceiver, xpowerDataGpuFreqReceiver } from '../xpower/XpowerGpuFrequencyRecevier'; 89import { xpowerDataThreadCountReceiver, xpowerDataThreadInfoReceiver } from '../xpower/XpowerThreadReceiver'; 90 91// @ts-ignore 92const traficHandlers: Map<number, unknown> = new Map<number, unknown>([]); // @ts-ignore 93export const execProtoForWorker = (data: unknown, proc: Function): void => traficHandlers.get(data.name)?.(data, proc); 94 95traficHandlers.set(QueryEnum.ClearMemoryCache, clearMemoryCache); 96traficHandlers.set(QueryEnum.CpuData, cpuDataReceiver); 97traficHandlers.set(QueryEnum.SearchCpuData, searchDataHandler); 98traficHandlers.set(QueryEnum.CpuFreqData, cpuFreqDataReceiver); 99traficHandlers.set(QueryEnum.CpuStateData, cpuStateReceiver); 100traficHandlers.set(QueryEnum.CpuFreqLimitData, cpuFreqLimitReceiver); 101traficHandlers.set(QueryEnum.ProcessData, processDataReceiver); 102traficHandlers.set(QueryEnum.ThreadData, threadDataReceiver); 103traficHandlers.set(QueryEnum.FuncData, funcDataReceiver); 104traficHandlers.set(QueryEnum.HiperfCallChart, hiPerfCallChartDataHandler); 105traficHandlers.set(QueryEnum.HiperfCallStack, hiPerfCallStackCacheHandler); 106traficHandlers.set(QueryEnum.HiperfCpuData, hiperfCpuDataReceiver); 107traficHandlers.set(QueryEnum.HiperfProcessData, hiperfProcessDataReceiver); 108traficHandlers.set(QueryEnum.HiperfThreadData, hiperfThreadDataReceiver); 109traficHandlers.set(QueryEnum.NativeMemoryChartCacheNormal, nativeMemoryDataHandler); 110traficHandlers.set(QueryEnum.NativeMemoryChartCacheStatistic, nativeMemoryDataHandler); 111traficHandlers.set(QueryEnum.NativeMemoryChartData, nativeMemoryDataHandler); 112traficHandlers.set(QueryEnum.HangData, hangDataReceiver); 113traficHandlers.set(QueryEnum.ClockData, clockDataReceiver); 114traficHandlers.set(QueryEnum.IrqData, irqDataReceiver); 115traficHandlers.set(QueryEnum.VirtualMemoryData, virtualMemoryDataReceiver); 116traficHandlers.set(QueryEnum.ProcessMemData, processMemDataReceiver); 117traficHandlers.set(QueryEnum.ProcessStartupData, processStartupDataReceiver); 118traficHandlers.set(QueryEnum.ProcessSoInitData, processSoInitDataReceiver); 119traficHandlers.set(QueryEnum.processExpectedData, processExpectedDataReceiver); 120traficHandlers.set(QueryEnum.processActualData, processActualDataReceiver); 121traficHandlers.set(QueryEnum.processDeliverInputEventData, processDeliverInputEventDataReceiver); 122traficHandlers.set(QueryEnum.processTouchEventDispatchData, processTouchEventDispatchDataReceiver); 123traficHandlers.set(QueryEnum.VmTrackerSmapsData, sMapsDataReceiver); 124traficHandlers.set(QueryEnum.VmTrackerDmaData, dmaDataReceiver); 125traficHandlers.set(QueryEnum.VmTrackerGpuMemoryData, gpuMemoryDataReceiver); 126traficHandlers.set(QueryEnum.VmTrackerGpuData, gpuDataReceiver); 127traficHandlers.set(QueryEnum.VmTrackerGpuResourceData, gpuResourceDataReceiver); 128traficHandlers.set(QueryEnum.VmTrackerGpuTotalData, gpuTotalDataReceiver); 129traficHandlers.set(QueryEnum.VmTrackerGpuWindowData, gpuWindowDataReceiver); 130traficHandlers.set(QueryEnum.VmTrackerShmData, shmDataReceiver); 131traficHandlers.set(QueryEnum.VmTrackerPurgeableData, purgeableDataReceiver); 132traficHandlers.set(QueryEnum.AbilityMemoryUsedData, abilityMemoryUsedDataReceiver); 133traficHandlers.set(QueryEnum.CpuAbilityUserData, cpuAbilityUserDataReceiver); 134traficHandlers.set(QueryEnum.CpuAbilitySystemData, cpuAbilitySystemDataReceiver); 135traficHandlers.set(QueryEnum.CpuAbilityMonitorData, cpuAbilityMonitorDataReceiver); 136traficHandlers.set(QueryEnum.AbilityBytesReadData, abilityBytesReadDataReceiver); 137traficHandlers.set(QueryEnum.AbilityBytesWrittenData, abilityBytesWrittenDataReceiver); 138traficHandlers.set(QueryEnum.AbilityReadOpsData, abilityReadOpsDataReceiver); 139traficHandlers.set(QueryEnum.AbilityWrittenOpsData, abilityWrittenOpsDataReceiver); 140traficHandlers.set(QueryEnum.AbilityBytesInTraceData, abilityBytesInTraceDataReceiver); 141traficHandlers.set(QueryEnum.AbilityBytesOutTraceData, abilityBytesOutTraceDataReceiver); 142traficHandlers.set(QueryEnum.AbilityPacketInTraceData, abilityPacketInTraceDataReceiver); 143traficHandlers.set(QueryEnum.AbilityPacketsOutTraceData, abilityPacketsOutTraceDataReceiver); 144traficHandlers.set(QueryEnum.AbilityPurgeableData, abilityPurgeableDataReceiver); 145traficHandlers.set(QueryEnum.AbilityDmaData, abilityDmaDataReceiver); 146traficHandlers.set(QueryEnum.AbilityGpuMemoryData, abilityGpuMemoryDataReceiver); 147traficHandlers.set(QueryEnum.HiSysEventData, hiSysEventDataReceiver); 148traficHandlers.set(QueryEnum.HilogData, logDataReceiver); 149traficHandlers.set(QueryEnum.FileSystemData, fileSystemDataReceiver); 150traficHandlers.set(QueryEnum.DiskIoData, diskIoReceiver); 151traficHandlers.set(QueryEnum.EBPFVm, eBPFVmReceiver); 152traficHandlers.set(QueryEnum.CpuProfilerData, cpuProfilerDataReceiver); 153traficHandlers.set(QueryEnum.FrameExpectedData, frameExpectedReceiver); 154traficHandlers.set(QueryEnum.FrameActualData, frameActualReceiver); 155traficHandlers.set(QueryEnum.EnergyAnomalyData, hiSysEnergyAnomalyDataReceiver); 156traficHandlers.set(QueryEnum.EnergyStateData, hiSysEnergyStateReceiver); 157traficHandlers.set(QueryEnum.EnergyPowerData, hiSysEnergyPowerReceiver); 158traficHandlers.set(QueryEnum.FrameAnimationData, frameAnimationReceiver); 159traficHandlers.set(QueryEnum.FrameDynamicData, frameDynamicReceiver); 160traficHandlers.set(QueryEnum.FrameSpacingData, frameSpacingReceiver); 161traficHandlers.set(QueryEnum.EnergySystemData, energySysEventReceiver); 162traficHandlers.set(QueryEnum.LostFrameData, lostFrameReceiver); 163traficHandlers.set(QueryEnum.SliceData, sliceReceiver); 164traficHandlers.set(QueryEnum.SliceSPTData, sliceSPTReceiver); 165traficHandlers.set(QueryEnum.dmaFenceData, dmaFenceReceiver); 166traficHandlers.set(QueryEnum.SliceChildBoxData, sliceSPTReceiver); 167traficHandlers.set(QueryEnum.ThreadNearData, sliceSPTReceiver); 168traficHandlers.set(QueryEnum.XpowerData, xpowerDataReceiver); 169traficHandlers.set(QueryEnum.XpowerWifiData, xpowerWifiDataReceiver); 170traficHandlers.set(QueryEnum.XpowerAppDetailData, xpowerAppDetailDataReceiver); 171traficHandlers.set(QueryEnum.XpowerStatisticData, xpowerStatisticDataReceiver); 172traficHandlers.set(QueryEnum.XpowerThreadCountData, xpowerDataThreadCountReceiver); 173traficHandlers.set(QueryEnum.XpowerThreadInfoData, xpowerDataThreadInfoReceiver); 174traficHandlers.set(QueryEnum.XpowerGpuFreqCountData, xpowerDataGpuFreqCountReceiver); 175traficHandlers.set(QueryEnum.XpowerGpuFreqData, xpowerDataGpuFreqReceiver);