1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { ColorUtils } from '../component/trace/base/ColorUtils'; 17fb726d48Sopenharmony_ciimport { BaseStruct } from './BaseStruct'; 18fb726d48Sopenharmony_ciimport { Utils } from '../component/trace/base/Utils'; 19fb726d48Sopenharmony_ci 20fb726d48Sopenharmony_ciconst padding = 1; 21fb726d48Sopenharmony_ci 22fb726d48Sopenharmony_ciexport class ProcessStruct extends BaseStruct { 23fb726d48Sopenharmony_ci startTime: number | undefined; 24fb726d48Sopenharmony_ci cpu: number | undefined; 25fb726d48Sopenharmony_ci dur: number | undefined; 26fb726d48Sopenharmony_ci id: number | undefined; 27fb726d48Sopenharmony_ci utid: number | undefined; 28fb726d48Sopenharmony_ci pid: number | undefined; 29fb726d48Sopenharmony_ci process: string | undefined; 30fb726d48Sopenharmony_ci state: string | undefined; 31fb726d48Sopenharmony_ci thread: string | undefined; 32fb726d48Sopenharmony_ci tid: number | undefined; 33fb726d48Sopenharmony_ci ts: number | undefined; 34fb726d48Sopenharmony_ci type: string | undefined; 35fb726d48Sopenharmony_ci 36fb726d48Sopenharmony_ci static draw(processBeanCanvasCtx: CanvasRenderingContext2D, processBeanStruct: ProcessStruct): void { 37fb726d48Sopenharmony_ci if (processBeanStruct.frame) { 38fb726d48Sopenharmony_ci processBeanCanvasCtx.fillStyle = ColorUtils.colorForTid(processBeanStruct.pid || 0); 39fb726d48Sopenharmony_ci let miniHeight = Math.round(processBeanStruct.frame.height / Utils.getInstance().getCpuCount()); 40fb726d48Sopenharmony_ci processBeanCanvasCtx.fillRect( 41fb726d48Sopenharmony_ci processBeanStruct.frame.x, 42fb726d48Sopenharmony_ci processBeanStruct.frame.y + (processBeanStruct.cpu || 0) * miniHeight + padding, 43fb726d48Sopenharmony_ci processBeanStruct.frame.width, 44fb726d48Sopenharmony_ci miniHeight - padding * 2 45fb726d48Sopenharmony_ci ); 46fb726d48Sopenharmony_ci } 47fb726d48Sopenharmony_ci } 48fb726d48Sopenharmony_ci} 49