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