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);