1fb726d48Sopenharmony_ci// Copyright (c) 2021 Huawei Device Co., Ltd. 2fb726d48Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 3fb726d48Sopenharmony_ci// you may not use this file except in compliance with the License. 4fb726d48Sopenharmony_ci// You may obtain a copy of the License at 5fb726d48Sopenharmony_ci// 6fb726d48Sopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 7fb726d48Sopenharmony_ci// 8fb726d48Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software 9fb726d48Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS, 10fb726d48Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11fb726d48Sopenharmony_ci// See the License for the specific language governing permissions and 12fb726d48Sopenharmony_ci// limitations under the License. 13fb726d48Sopenharmony_ciimport { Args } from './CommonArgs'; 14fb726d48Sopenharmony_ciimport { TraficEnum } from './utils/QueryEnum'; 15fb726d48Sopenharmony_ciexport const cpuAbilityMonitorDataSql = (args: Args): string => { 16fb726d48Sopenharmony_ci return `select 17fb726d48Sopenharmony_ci (t.total_load) as value, 18fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 19fb726d48Sopenharmony_ci from cpu_usage t`; 20fb726d48Sopenharmony_ci}; 21fb726d48Sopenharmony_ciexport const cpuAbilityUserDataSql = (args: Args): string => { 22fb726d48Sopenharmony_ci return `select 23fb726d48Sopenharmony_ci t.user_load as value, 24fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 25fb726d48Sopenharmony_ci from cpu_usage t`; 26fb726d48Sopenharmony_ci}; 27fb726d48Sopenharmony_ciexport const cpuAbilitySystemDataSql = (args: Args): string => { 28fb726d48Sopenharmony_ci return `select 29fb726d48Sopenharmony_ci t.system_load as value, 30fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 31fb726d48Sopenharmony_ci from cpu_usage t`; 32fb726d48Sopenharmony_ci}; 33fb726d48Sopenharmony_ciexport const abilityMemoryDataSql = (args: Args): string => { 34fb726d48Sopenharmony_ci return `select 35fb726d48Sopenharmony_ci t.value as value, 36fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 37fb726d48Sopenharmony_ci from sys_mem_measure t 38fb726d48Sopenharmony_ci where t.filter_id = ${args.id}`; 39fb726d48Sopenharmony_ci}; 40fb726d48Sopenharmony_ciexport const abilityBytesReadDataSql = (args: Args): string => { 41fb726d48Sopenharmony_ci return `select 42fb726d48Sopenharmony_ci t.rd_speed as value, 43fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 44fb726d48Sopenharmony_ci from diskio t`; 45fb726d48Sopenharmony_ci}; 46fb726d48Sopenharmony_ciexport const abilityBytesWrittenDataSql = (args: Args): string => { 47fb726d48Sopenharmony_ci return `select 48fb726d48Sopenharmony_ci t.wr_speed as value, 49fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 50fb726d48Sopenharmony_ci from diskio t`; 51fb726d48Sopenharmony_ci}; 52fb726d48Sopenharmony_ciexport const abilityReadOpsDataSql = (args: Args): string => { 53fb726d48Sopenharmony_ci return `select 54fb726d48Sopenharmony_ci t.rd_count_speed as value, 55fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 56fb726d48Sopenharmony_ci from diskio t`; 57fb726d48Sopenharmony_ci}; 58fb726d48Sopenharmony_ciexport const abilityWrittenOpsDataSql = (args: Args): string => { 59fb726d48Sopenharmony_ci return `select 60fb726d48Sopenharmony_ci t.wr_count_speed as value, 61fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 62fb726d48Sopenharmony_ci from diskio t`; 63fb726d48Sopenharmony_ci}; 64fb726d48Sopenharmony_ciexport const abilityBytesInTraceDataSql = (args: Args): string => { 65fb726d48Sopenharmony_ci return `select 66fb726d48Sopenharmony_ci t.tx_speed as value, 67fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 68fb726d48Sopenharmony_ci from network t`; 69fb726d48Sopenharmony_ci}; 70fb726d48Sopenharmony_ciexport const abilityBytesOutTraceDataSql = (args: Args): string => { 71fb726d48Sopenharmony_ci return `select 72fb726d48Sopenharmony_ci t.rx_speed as value, 73fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 74fb726d48Sopenharmony_ci from network t`; 75fb726d48Sopenharmony_ci}; 76fb726d48Sopenharmony_ciexport const abilityPacketInDataSql = (args: Args): string => { 77fb726d48Sopenharmony_ci return `select 78fb726d48Sopenharmony_ci t.packet_in_sec as value, 79fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 80fb726d48Sopenharmony_ci from network t`; 81fb726d48Sopenharmony_ci}; 82fb726d48Sopenharmony_ciexport const abilityPacketsOutDataSql = (args: Args): string => { 83fb726d48Sopenharmony_ci return `select 84fb726d48Sopenharmony_ci t.packet_out_sec as value, 85fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs 86fb726d48Sopenharmony_ci from network t`; 87fb726d48Sopenharmony_ci}; 88fb726d48Sopenharmony_ciexport const cpuAbilityMonitorDataProtoSql = (args: Args): string => { 89fb726d48Sopenharmony_ci return `select 90fb726d48Sopenharmony_ci (t.total_load) as value, 91fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 92fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 93fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 94fb726d48Sopenharmony_ci from cpu_usage t 95fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 96fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 97fb726d48Sopenharmony_ci group by px`; 98fb726d48Sopenharmony_ci}; 99fb726d48Sopenharmony_ciexport const cpuAbilityUserDataProtoSql = (args: Args): string => { 100fb726d48Sopenharmony_ci return `select 101fb726d48Sopenharmony_ci t.user_load as value, 102fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 103fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 104fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 105fb726d48Sopenharmony_ci from cpu_usage t 106fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 107fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 108fb726d48Sopenharmony_ci group by px`; 109fb726d48Sopenharmony_ci}; 110fb726d48Sopenharmony_ciexport const cpuAbilitySystemDataProtoSql = (args: Args): string => { 111fb726d48Sopenharmony_ci return `select 112fb726d48Sopenharmony_ci t.system_load as value, 113fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 114fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 115fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 116fb726d48Sopenharmony_ci from cpu_usage t 117fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 118fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 119fb726d48Sopenharmony_ci group by px`; 120fb726d48Sopenharmony_ci}; 121fb726d48Sopenharmony_ciexport const abilityMemoryDataProtoSql = (args: Args): string => { 122fb726d48Sopenharmony_ci return `select 123fb726d48Sopenharmony_ci t.value as value, 124fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 125fb726d48Sopenharmony_ci t.dur as dur, 126fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 127fb726d48Sopenharmony_ci from sys_mem_measure t 128fb726d48Sopenharmony_ci where t.filter_id = ${args.id} 129fb726d48Sopenharmony_ci and startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 130fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 131fb726d48Sopenharmony_ci group by px`; 132fb726d48Sopenharmony_ci}; 133fb726d48Sopenharmony_ciexport const abilityBytesReadDataProtoSql = (args: Args): string => { 134fb726d48Sopenharmony_ci return `select 135fb726d48Sopenharmony_ci t.rd_speed as value, 136fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 137fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 138fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 139fb726d48Sopenharmony_ci from diskio t 140fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 141fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 142fb726d48Sopenharmony_ci group by px`; 143fb726d48Sopenharmony_ci}; 144fb726d48Sopenharmony_ciexport const abilityBytesWrittenDataProtoSql = (args: Args): string => { 145fb726d48Sopenharmony_ci return `select 146fb726d48Sopenharmony_ci t.wr_speed as value, 147fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 148fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 149fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 150fb726d48Sopenharmony_ci from diskio t 151fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 152fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 153fb726d48Sopenharmony_ci group by px`; 154fb726d48Sopenharmony_ci}; 155fb726d48Sopenharmony_ciexport const abilityReadOpsDataProtoSql = (args: Args): string => { 156fb726d48Sopenharmony_ci return `select 157fb726d48Sopenharmony_ci t.rd_count_speed as value, 158fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 159fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 160fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 161fb726d48Sopenharmony_ci from diskio t 162fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 163fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 164fb726d48Sopenharmony_ci group by px`; 165fb726d48Sopenharmony_ci}; 166fb726d48Sopenharmony_ciexport const abilityWrittenOpsDataProtoSql = (args: Args): string => { 167fb726d48Sopenharmony_ci return `select 168fb726d48Sopenharmony_ci t.wr_count_speed as value, 169fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 170fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 171fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 172fb726d48Sopenharmony_ci from diskio t 173fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 174fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 175fb726d48Sopenharmony_ci group by px`; 176fb726d48Sopenharmony_ci}; 177fb726d48Sopenharmony_ciexport const abilityBytesInTraceDataProtoSql = (args: Args): string => { 178fb726d48Sopenharmony_ci return `select 179fb726d48Sopenharmony_ci t.tx_speed as value, 180fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 181fb726d48Sopenharmony_ci t.dur as dur, 182fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 183fb726d48Sopenharmony_ci from network t 184fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 185fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 186fb726d48Sopenharmony_ci group by px`; 187fb726d48Sopenharmony_ci}; 188fb726d48Sopenharmony_ciexport const abilityBytesOutTraceDataProtoSql = (args: Args): string => { 189fb726d48Sopenharmony_ci return `select 190fb726d48Sopenharmony_ci t.rx_speed as value, 191fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 192fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 193fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 194fb726d48Sopenharmony_ci from network t 195fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 196fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 197fb726d48Sopenharmony_ci group by px`; 198fb726d48Sopenharmony_ci}; 199fb726d48Sopenharmony_ciexport const abilityPacketInDataProtoSql = (args: Args): string => { 200fb726d48Sopenharmony_ci return `select 201fb726d48Sopenharmony_ci t.packet_in_sec as value, 202fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 203fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 204fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 205fb726d48Sopenharmony_ci from network t 206fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 207fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 208fb726d48Sopenharmony_ci group by px`; 209fb726d48Sopenharmony_ci}; 210fb726d48Sopenharmony_ciexport const abilityPacketsOutDataProtoSql = (args: Args): string => { 211fb726d48Sopenharmony_ci return `select 212fb726d48Sopenharmony_ci t.packet_out_sec as value, 213fb726d48Sopenharmony_ci (t.ts - ${args.recordStartNS} ) as startNs, 214fb726d48Sopenharmony_ci max(ifnull(t.dur, ${args.recordEndNS} - t.ts)) as dur, 215fb726d48Sopenharmony_ci ((t.ts - ${args.recordStartNS}) / (${Math.floor((args.endNS - args.startNS) / args.width)})) as px 216fb726d48Sopenharmony_ci from network t 217fb726d48Sopenharmony_ci where startNs + (ifnull(dur,0)) >= ${Math.floor(args.startNS)} 218fb726d48Sopenharmony_ci and startNs <= ${Math.floor(args.endNS)} 219fb726d48Sopenharmony_ci group by px`; 220fb726d48Sopenharmony_ci}; 221fb726d48Sopenharmony_ci 222fb726d48Sopenharmony_cilet totalList: Array<unknown> = []; 223fb726d48Sopenharmony_cilet userList: Array<unknown> = []; 224fb726d48Sopenharmony_cilet systemList: Array<unknown> = []; 225fb726d48Sopenharmony_cilet memoryList: Array<unknown> = []; 226fb726d48Sopenharmony_cilet memoryListMap = new Map<string, Array<unknown>>(); 227fb726d48Sopenharmony_cilet bytesReadList: Array<unknown> = []; 228fb726d48Sopenharmony_cilet bytesWriteList: Array<unknown> = []; 229fb726d48Sopenharmony_cilet readOpsList: Array<unknown> = []; 230fb726d48Sopenharmony_cilet writeOpsList: Array<unknown> = []; 231fb726d48Sopenharmony_cilet bytesInList: Array<unknown> = []; 232fb726d48Sopenharmony_cilet bytesOutList: Array<unknown> = []; 233fb726d48Sopenharmony_cilet packetInList: Array<unknown> = []; 234fb726d48Sopenharmony_cilet packetOutList: Array<unknown> = []; 235fb726d48Sopenharmony_ci 236fb726d48Sopenharmony_ciexport function resetAbilityMonitor(): void { 237fb726d48Sopenharmony_ci totalList = []; 238fb726d48Sopenharmony_ci userList = []; 239fb726d48Sopenharmony_ci systemList = []; 240fb726d48Sopenharmony_ci memoryList = []; 241fb726d48Sopenharmony_ci memoryListMap.clear(); 242fb726d48Sopenharmony_ci bytesReadList = []; 243fb726d48Sopenharmony_ci bytesWriteList = []; 244fb726d48Sopenharmony_ci readOpsList = []; 245fb726d48Sopenharmony_ci writeOpsList = []; 246fb726d48Sopenharmony_ci bytesInList = []; 247fb726d48Sopenharmony_ci bytesOutList = []; 248fb726d48Sopenharmony_ci packetInList = []; 249fb726d48Sopenharmony_ci packetOutList = []; 250fb726d48Sopenharmony_ci} 251fb726d48Sopenharmony_ci/** 252fb726d48Sopenharmony_ci * @param data 253fb726d48Sopenharmony_ci * @param proc 254fb726d48Sopenharmony_ci */ 255fb726d48Sopenharmony_ci 256fb726d48Sopenharmony_ciexport function cpuAbilityMonitorDataReceiver(data: unknown, proc: Function): void { 257fb726d48Sopenharmony_ci // @ts-ignore 258fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 259fb726d48Sopenharmony_ci if (totalList.length === 0) { 260fb726d48Sopenharmony_ci // @ts-ignore 261fb726d48Sopenharmony_ci totalList = proc(cpuAbilityMonitorDataSql(data.params)); 262fb726d48Sopenharmony_ci } 263fb726d48Sopenharmony_ci // @ts-ignore 264fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, totalList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 265fb726d48Sopenharmony_ci } else { 266fb726d48Sopenharmony_ci // @ts-ignore 267fb726d48Sopenharmony_ci let sql = cpuAbilityMonitorDataProtoSql(data.params); 268fb726d48Sopenharmony_ci let res = proc(sql); 269fb726d48Sopenharmony_ci // @ts-ignore 270fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 271fb726d48Sopenharmony_ci } 272fb726d48Sopenharmony_ci} 273fb726d48Sopenharmony_ciexport function cpuAbilityUserDataReceiver(data: unknown, proc: Function): void { 274fb726d48Sopenharmony_ci // @ts-ignore 275fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 276fb726d48Sopenharmony_ci if (userList.length === 0) { 277fb726d48Sopenharmony_ci // @ts-ignore 278fb726d48Sopenharmony_ci userList = proc(cpuAbilityUserDataSql(data.params)); 279fb726d48Sopenharmony_ci } 280fb726d48Sopenharmony_ci // @ts-ignore 281fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, userList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 282fb726d48Sopenharmony_ci } else { 283fb726d48Sopenharmony_ci // @ts-ignore 284fb726d48Sopenharmony_ci let sql = cpuAbilityUserDataProtoSql(data.params); 285fb726d48Sopenharmony_ci let res = proc(sql); 286fb726d48Sopenharmony_ci // @ts-ignore 287fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 288fb726d48Sopenharmony_ci } 289fb726d48Sopenharmony_ci} 290fb726d48Sopenharmony_ciexport function cpuAbilitySystemDataReceiver(data: unknown, proc: Function): void { 291fb726d48Sopenharmony_ci // @ts-ignore 292fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 293fb726d48Sopenharmony_ci if (systemList.length === 0) { 294fb726d48Sopenharmony_ci // @ts-ignore 295fb726d48Sopenharmony_ci systemList = proc(cpuAbilitySystemDataSql(data.params)); 296fb726d48Sopenharmony_ci } 297fb726d48Sopenharmony_ci // @ts-ignore 298fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, systemList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 299fb726d48Sopenharmony_ci } else { 300fb726d48Sopenharmony_ci // @ts-ignore 301fb726d48Sopenharmony_ci let sql = cpuAbilitySystemDataProtoSql(data.params); 302fb726d48Sopenharmony_ci let res = proc(sql); 303fb726d48Sopenharmony_ci // @ts-ignore 304fb726d48Sopenharmony_ci cpuArrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 305fb726d48Sopenharmony_ci } 306fb726d48Sopenharmony_ci} 307fb726d48Sopenharmony_ciexport function abilityMemoryUsedDataReceiver(data: unknown, proc: Function): void { 308fb726d48Sopenharmony_ci // @ts-ignore 309fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 310fb726d48Sopenharmony_ci // @ts-ignore 311fb726d48Sopenharmony_ci if (!memoryListMap.has(data.params.id)) { 312fb726d48Sopenharmony_ci // @ts-ignore 313fb726d48Sopenharmony_ci memoryList = proc(abilityMemoryDataSql(data.params)); 314fb726d48Sopenharmony_ci // @ts-ignore 315fb726d48Sopenharmony_ci memoryListMap.set(data.params.id, memoryList); 316fb726d48Sopenharmony_ci } 317fb726d48Sopenharmony_ci // @ts-ignore 318fb726d48Sopenharmony_ci let list = memoryListMap.get(data.params.id) || []; 319fb726d48Sopenharmony_ci // @ts-ignore 320fb726d48Sopenharmony_ci arrayBufferHandler(data, list, data.params.trafic !== TraficEnum.SharedArrayBuffer); 321fb726d48Sopenharmony_ci } else { 322fb726d48Sopenharmony_ci // @ts-ignore 323fb726d48Sopenharmony_ci let sql = abilityMemoryDataProtoSql(data.params); 324fb726d48Sopenharmony_ci let res = proc(sql); 325fb726d48Sopenharmony_ci // @ts-ignore 326fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 327fb726d48Sopenharmony_ci } 328fb726d48Sopenharmony_ci} 329fb726d48Sopenharmony_ciexport function abilityBytesReadDataReceiver(data: unknown, proc: Function): void { 330fb726d48Sopenharmony_ci // @ts-ignore 331fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 332fb726d48Sopenharmony_ci if (bytesReadList.length === 0) { 333fb726d48Sopenharmony_ci // @ts-ignore 334fb726d48Sopenharmony_ci bytesReadList = proc(abilityBytesReadDataSql(data.params)); 335fb726d48Sopenharmony_ci } 336fb726d48Sopenharmony_ci // @ts-ignore 337fb726d48Sopenharmony_ci arrayBufferHandler(data, bytesReadList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 338fb726d48Sopenharmony_ci } else { 339fb726d48Sopenharmony_ci // @ts-ignore 340fb726d48Sopenharmony_ci let sql = abilityBytesReadDataProtoSql(data.params); 341fb726d48Sopenharmony_ci let res = proc(sql); 342fb726d48Sopenharmony_ci // @ts-ignore 343fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 344fb726d48Sopenharmony_ci } 345fb726d48Sopenharmony_ci} 346fb726d48Sopenharmony_ciexport function abilityBytesWrittenDataReceiver(data: unknown, proc: Function): void { 347fb726d48Sopenharmony_ci // @ts-ignore 348fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 349fb726d48Sopenharmony_ci if (bytesWriteList.length === 0) { 350fb726d48Sopenharmony_ci // @ts-ignore 351fb726d48Sopenharmony_ci bytesWriteList = proc(abilityBytesWrittenDataSql(data.params)); 352fb726d48Sopenharmony_ci } 353fb726d48Sopenharmony_ci // @ts-ignore 354fb726d48Sopenharmony_ci arrayBufferHandler(data, bytesWriteList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 355fb726d48Sopenharmony_ci } else { 356fb726d48Sopenharmony_ci // @ts-ignore 357fb726d48Sopenharmony_ci let sql = abilityBytesWrittenDataProtoSql(data.params); 358fb726d48Sopenharmony_ci let res = proc(sql); 359fb726d48Sopenharmony_ci // @ts-ignore 360fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 361fb726d48Sopenharmony_ci } 362fb726d48Sopenharmony_ci} 363fb726d48Sopenharmony_ciexport function abilityReadOpsDataReceiver(data: unknown, proc: Function): void { 364fb726d48Sopenharmony_ci // @ts-ignore 365fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 366fb726d48Sopenharmony_ci if (readOpsList.length === 0) { 367fb726d48Sopenharmony_ci // @ts-ignore 368fb726d48Sopenharmony_ci readOpsList = proc(abilityReadOpsDataSql(data.params)); 369fb726d48Sopenharmony_ci } 370fb726d48Sopenharmony_ci // @ts-ignore 371fb726d48Sopenharmony_ci arrayBufferHandler(data, readOpsList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 372fb726d48Sopenharmony_ci } else { 373fb726d48Sopenharmony_ci // @ts-ignore 374fb726d48Sopenharmony_ci let sql = abilityReadOpsDataProtoSql(data.params); 375fb726d48Sopenharmony_ci let res = proc(sql); 376fb726d48Sopenharmony_ci // @ts-ignore 377fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 378fb726d48Sopenharmony_ci } 379fb726d48Sopenharmony_ci} 380fb726d48Sopenharmony_ciexport function abilityWrittenOpsDataReceiver(data: unknown, proc: Function): void { 381fb726d48Sopenharmony_ci // @ts-ignore 382fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 383fb726d48Sopenharmony_ci if (writeOpsList.length === 0) { 384fb726d48Sopenharmony_ci // @ts-ignore 385fb726d48Sopenharmony_ci writeOpsList = proc(abilityWrittenOpsDataSql(data.params)); 386fb726d48Sopenharmony_ci } 387fb726d48Sopenharmony_ci // @ts-ignore 388fb726d48Sopenharmony_ci arrayBufferHandler(data, writeOpsList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 389fb726d48Sopenharmony_ci } else { 390fb726d48Sopenharmony_ci // @ts-ignore 391fb726d48Sopenharmony_ci let sql = abilityWrittenOpsDataProtoSql(data.params); 392fb726d48Sopenharmony_ci let res = proc(sql); 393fb726d48Sopenharmony_ci // @ts-ignore 394fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 395fb726d48Sopenharmony_ci } 396fb726d48Sopenharmony_ci} 397fb726d48Sopenharmony_ciexport function abilityBytesInTraceDataReceiver(data: unknown, proc: Function): void { 398fb726d48Sopenharmony_ci // @ts-ignore 399fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 400fb726d48Sopenharmony_ci if (bytesInList.length === 0) { 401fb726d48Sopenharmony_ci // @ts-ignore 402fb726d48Sopenharmony_ci bytesInList = proc(abilityBytesInTraceDataSql(data.params)); 403fb726d48Sopenharmony_ci } 404fb726d48Sopenharmony_ci // @ts-ignore 405fb726d48Sopenharmony_ci arrayBufferHandler(data, bytesInList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 406fb726d48Sopenharmony_ci } else { 407fb726d48Sopenharmony_ci // @ts-ignore 408fb726d48Sopenharmony_ci let sql = abilityBytesInTraceDataProtoSql(data.params); 409fb726d48Sopenharmony_ci let res = proc(sql); 410fb726d48Sopenharmony_ci // @ts-ignore 411fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 412fb726d48Sopenharmony_ci } 413fb726d48Sopenharmony_ci} 414fb726d48Sopenharmony_ciexport function abilityBytesOutTraceDataReceiver(data: unknown, proc: Function): void { 415fb726d48Sopenharmony_ci // @ts-ignore 416fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 417fb726d48Sopenharmony_ci if (bytesOutList.length === 0) { 418fb726d48Sopenharmony_ci // @ts-ignore 419fb726d48Sopenharmony_ci bytesOutList = proc(abilityBytesOutTraceDataSql(data.params)); 420fb726d48Sopenharmony_ci } 421fb726d48Sopenharmony_ci // @ts-ignore 422fb726d48Sopenharmony_ci arrayBufferHandler(data, bytesOutList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 423fb726d48Sopenharmony_ci } else { 424fb726d48Sopenharmony_ci // @ts-ignore 425fb726d48Sopenharmony_ci let sql = abilityBytesOutTraceDataProtoSql(data.params); 426fb726d48Sopenharmony_ci let res = proc(sql); 427fb726d48Sopenharmony_ci // @ts-ignore 428fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 429fb726d48Sopenharmony_ci } 430fb726d48Sopenharmony_ci} 431fb726d48Sopenharmony_ciexport function abilityPacketInTraceDataReceiver(data: unknown, proc: Function): void { 432fb726d48Sopenharmony_ci // @ts-ignore 433fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 434fb726d48Sopenharmony_ci if (packetInList.length === 0) { 435fb726d48Sopenharmony_ci // @ts-ignore 436fb726d48Sopenharmony_ci packetInList = proc(abilityPacketInDataSql(data.params)); 437fb726d48Sopenharmony_ci } 438fb726d48Sopenharmony_ci // @ts-ignore 439fb726d48Sopenharmony_ci arrayBufferHandler(data, packetInList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 440fb726d48Sopenharmony_ci } else { 441fb726d48Sopenharmony_ci // @ts-ignore 442fb726d48Sopenharmony_ci let sql = abilityPacketInDataProtoSql(data.params); 443fb726d48Sopenharmony_ci let res = proc(sql); 444fb726d48Sopenharmony_ci // @ts-ignore 445fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 446fb726d48Sopenharmony_ci } 447fb726d48Sopenharmony_ci} 448fb726d48Sopenharmony_ciexport function abilityPacketsOutTraceDataReceiver(data: unknown, proc: Function): void { 449fb726d48Sopenharmony_ci // @ts-ignore 450fb726d48Sopenharmony_ci if (data.params.trafic === TraficEnum.Memory) { 451fb726d48Sopenharmony_ci if (packetOutList.length === 0) { 452fb726d48Sopenharmony_ci // @ts-ignore 453fb726d48Sopenharmony_ci packetOutList = proc(abilityPacketsOutDataSql(data.params)); 454fb726d48Sopenharmony_ci } 455fb726d48Sopenharmony_ci // @ts-ignore 456fb726d48Sopenharmony_ci arrayBufferHandler(data, packetOutList, data.params.trafic !== TraficEnum.SharedArrayBuffer); 457fb726d48Sopenharmony_ci } else { 458fb726d48Sopenharmony_ci // @ts-ignore 459fb726d48Sopenharmony_ci let sql = abilityPacketsOutDataProtoSql(data.params); 460fb726d48Sopenharmony_ci let res = proc(sql); 461fb726d48Sopenharmony_ci // @ts-ignore 462fb726d48Sopenharmony_ci arrayBufferHandler(data, res, data.params.trafic !== TraficEnum.SharedArrayBuffer); 463fb726d48Sopenharmony_ci } 464fb726d48Sopenharmony_ci} 465fb726d48Sopenharmony_ci 466fb726d48Sopenharmony_cifunction arrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): void { 467fb726d48Sopenharmony_ci // @ts-ignore 468fb726d48Sopenharmony_ci let startNS = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.startNS); 469fb726d48Sopenharmony_ci // @ts-ignore 470fb726d48Sopenharmony_ci let value = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.value); 471fb726d48Sopenharmony_ci // @ts-ignore 472fb726d48Sopenharmony_ci let dur = new Int32Array(transfer ? res.length : data.params.sharedArrayBuffers.dur); 473fb726d48Sopenharmony_ci res.forEach((it, i) => { 474fb726d48Sopenharmony_ci // @ts-ignore 475fb726d48Sopenharmony_ci data.params.trafic === TraficEnum.ProtoBuffer && (it = it.abilityData); 476fb726d48Sopenharmony_ci // @ts-ignore 477fb726d48Sopenharmony_ci startNS[i] = it.startNs; 478fb726d48Sopenharmony_ci // @ts-ignore 479fb726d48Sopenharmony_ci value[i] = it.value; 480fb726d48Sopenharmony_ci // @ts-ignore 481fb726d48Sopenharmony_ci dur[i] = it.dur; 482fb726d48Sopenharmony_ci }); 483fb726d48Sopenharmony_ci (self as unknown as Worker).postMessage( 484fb726d48Sopenharmony_ci { 485fb726d48Sopenharmony_ci // @ts-ignore 486fb726d48Sopenharmony_ci id: data.id, 487fb726d48Sopenharmony_ci // @ts-ignore 488fb726d48Sopenharmony_ci action: data.action, 489fb726d48Sopenharmony_ci results: transfer 490fb726d48Sopenharmony_ci ? { 491fb726d48Sopenharmony_ci startNS: startNS.buffer, 492fb726d48Sopenharmony_ci value: value.buffer, 493fb726d48Sopenharmony_ci dur: dur.buffer, 494fb726d48Sopenharmony_ci } 495fb726d48Sopenharmony_ci : {}, 496fb726d48Sopenharmony_ci len: res.length, 497fb726d48Sopenharmony_ci transfer: transfer, 498fb726d48Sopenharmony_ci }, 499fb726d48Sopenharmony_ci transfer ? [startNS.buffer, value.buffer, dur.buffer] : [] 500fb726d48Sopenharmony_ci ); 501fb726d48Sopenharmony_ci} 502fb726d48Sopenharmony_ci 503fb726d48Sopenharmony_cifunction cpuArrayBufferHandler(data: unknown, res: unknown[], transfer: boolean): void { 504fb726d48Sopenharmony_ci // @ts-ignore 505fb726d48Sopenharmony_ci let startNS = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.startNS); 506fb726d48Sopenharmony_ci // @ts-ignore 507fb726d48Sopenharmony_ci let value = new Float64Array(transfer ? res.length : data.params.sharedArrayBuffers.value); 508fb726d48Sopenharmony_ci // @ts-ignore 509fb726d48Sopenharmony_ci let dur = new Int32Array(transfer ? res.length : data.params.sharedArrayBuffers.dur); 510fb726d48Sopenharmony_ci res.forEach((it, i) => { 511fb726d48Sopenharmony_ci // @ts-ignore 512fb726d48Sopenharmony_ci data.params.trafic === TraficEnum.ProtoBuffer && (it = it.cpuAbilityData); 513fb726d48Sopenharmony_ci // @ts-ignore 514fb726d48Sopenharmony_ci startNS[i] = it.startNs; 515fb726d48Sopenharmony_ci // @ts-ignore 516fb726d48Sopenharmony_ci value[i] = it.value; 517fb726d48Sopenharmony_ci // @ts-ignore 518fb726d48Sopenharmony_ci dur[i] = it.dur; 519fb726d48Sopenharmony_ci }); 520fb726d48Sopenharmony_ci (self as unknown as Worker).postMessage( 521fb726d48Sopenharmony_ci { 522fb726d48Sopenharmony_ci // @ts-ignore 523fb726d48Sopenharmony_ci id: data.id, 524fb726d48Sopenharmony_ci // @ts-ignore 525fb726d48Sopenharmony_ci action: data.action, 526fb726d48Sopenharmony_ci results: transfer 527fb726d48Sopenharmony_ci ? { 528fb726d48Sopenharmony_ci startNS: startNS.buffer, 529fb726d48Sopenharmony_ci value: value.buffer, 530fb726d48Sopenharmony_ci dur: dur.buffer, 531fb726d48Sopenharmony_ci } 532fb726d48Sopenharmony_ci : {}, 533fb726d48Sopenharmony_ci len: res.length, 534fb726d48Sopenharmony_ci transfer: transfer, 535fb726d48Sopenharmony_ci }, 536fb726d48Sopenharmony_ci transfer ? [startNS.buffer, value.buffer, dur.buffer] : [] 537fb726d48Sopenharmony_ci ); 538fb726d48Sopenharmony_ci} 539