161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit PerformanceAnalysisKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ci/** 2261847f8eSopenharmony_ci * This module provides the capability to check bad code usage. 2361847f8eSopenharmony_ci * 2461847f8eSopenharmony_ci * @namespace hichecker 2561847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 2661847f8eSopenharmony_ci * @since 8 2761847f8eSopenharmony_ci */ 2861847f8eSopenharmony_cideclare namespace hichecker { 2961847f8eSopenharmony_ci /** 3061847f8eSopenharmony_ci * The caution rule print log. 3161847f8eSopenharmony_ci * 3261847f8eSopenharmony_ci * @constant 3361847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 3461847f8eSopenharmony_ci * @since 8 3561847f8eSopenharmony_ci */ 3661847f8eSopenharmony_ci const RULE_CAUTION_PRINT_LOG: 9223372036854775808n; // 1 << 63 3761847f8eSopenharmony_ci 3861847f8eSopenharmony_ci /** 3961847f8eSopenharmony_ci * The caution rule trigger crash. 4061847f8eSopenharmony_ci * 4161847f8eSopenharmony_ci * @constant 4261847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 4361847f8eSopenharmony_ci * @since 8 4461847f8eSopenharmony_ci */ 4561847f8eSopenharmony_ci const RULE_CAUTION_TRIGGER_CRASH: 4611686018427387904n; // 1 << 62 4661847f8eSopenharmony_ci 4761847f8eSopenharmony_ci /** 4861847f8eSopenharmony_ci * The thread rule check slow process. 4961847f8eSopenharmony_ci * 5061847f8eSopenharmony_ci * @constant 5161847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 5261847f8eSopenharmony_ci * @since 8 5361847f8eSopenharmony_ci */ 5461847f8eSopenharmony_ci const RULE_THREAD_CHECK_SLOW_PROCESS: 1n; 5561847f8eSopenharmony_ci 5661847f8eSopenharmony_ci /** 5761847f8eSopenharmony_ci * The process rule check ability connection leak. 5861847f8eSopenharmony_ci * 5961847f8eSopenharmony_ci * @constant 6061847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 6161847f8eSopenharmony_ci * @since 8 6261847f8eSopenharmony_ci */ 6361847f8eSopenharmony_ci const RULE_CHECK_ABILITY_CONNECTION_LEAK: 8589934592n; // 1 << 33 6461847f8eSopenharmony_ci 6561847f8eSopenharmony_ci /** 6661847f8eSopenharmony_ci * The process rule check ability Arkui performance 6761847f8eSopenharmony_ci * 6861847f8eSopenharmony_ci * @constant 6961847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 7061847f8eSopenharmony_ci * @since 11 7161847f8eSopenharmony_ci */ 7261847f8eSopenharmony_ci const RULE_CHECK_ARKUI_PERFORMANCE: 17179869184n; // 1 << 34 7361847f8eSopenharmony_ci 7461847f8eSopenharmony_ci /** 7561847f8eSopenharmony_ci * add one or more rule. 7661847f8eSopenharmony_ci * 7761847f8eSopenharmony_ci * @param { bigint } rule 7861847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 7961847f8eSopenharmony_ci * @since 8 8061847f8eSopenharmony_ci * @deprecated since 9 8161847f8eSopenharmony_ci * @useinstead ohos.hichecker/hichecker#addCheckRule 8261847f8eSopenharmony_ci */ 8361847f8eSopenharmony_ci function addRule(rule: bigint): void; 8461847f8eSopenharmony_ci 8561847f8eSopenharmony_ci /** 8661847f8eSopenharmony_ci * remove one or more rule. 8761847f8eSopenharmony_ci * 8861847f8eSopenharmony_ci * @param { bigint } rule 8961847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 9061847f8eSopenharmony_ci * @since 8 9161847f8eSopenharmony_ci * @deprecated since 9 9261847f8eSopenharmony_ci * @useinstead ohos.hichecker/hichecker#removeCheckRule 9361847f8eSopenharmony_ci */ 9461847f8eSopenharmony_ci function removeRule(rule: bigint): void; 9561847f8eSopenharmony_ci 9661847f8eSopenharmony_ci /** 9761847f8eSopenharmony_ci * get added rule 9861847f8eSopenharmony_ci * 9961847f8eSopenharmony_ci * @returns { bigint } all added thread rule and process rule. 10061847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 10161847f8eSopenharmony_ci * @since 8 10261847f8eSopenharmony_ci */ 10361847f8eSopenharmony_ci function getRule(): bigint; 10461847f8eSopenharmony_ci 10561847f8eSopenharmony_ci /** 10661847f8eSopenharmony_ci * whether the query rule is added 10761847f8eSopenharmony_ci * 10861847f8eSopenharmony_ci * @param { bigint } rule 10961847f8eSopenharmony_ci * @returns { boolean } the result of whether the query rule is added. 11061847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 11161847f8eSopenharmony_ci * @since 8 11261847f8eSopenharmony_ci * @deprecated since 9 11361847f8eSopenharmony_ci * @useinstead ohos.hichecker/hichecker#containsCheckRule 11461847f8eSopenharmony_ci */ 11561847f8eSopenharmony_ci function contains(rule: bigint): boolean; 11661847f8eSopenharmony_ci 11761847f8eSopenharmony_ci /** 11861847f8eSopenharmony_ci * Add one or more rule. 11961847f8eSopenharmony_ci * 12061847f8eSopenharmony_ci * @param { bigint } rule 12161847f8eSopenharmony_ci * @throws { BusinessError } 401 - the parameter check failed, only one bigint type parameter is needed 12261847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 12361847f8eSopenharmony_ci * @since 9 12461847f8eSopenharmony_ci */ 12561847f8eSopenharmony_ci function addCheckRule(rule: bigint): void; 12661847f8eSopenharmony_ci 12761847f8eSopenharmony_ci /** 12861847f8eSopenharmony_ci * Remove one or more rule. 12961847f8eSopenharmony_ci * 13061847f8eSopenharmony_ci * @param { bigint } rule 13161847f8eSopenharmony_ci * @throws { BusinessError } 401 - the parameter check failed, only one bigint type parameter is needed 13261847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 13361847f8eSopenharmony_ci * @since 9 13461847f8eSopenharmony_ci */ 13561847f8eSopenharmony_ci function removeCheckRule(rule: bigint): void; 13661847f8eSopenharmony_ci 13761847f8eSopenharmony_ci /** 13861847f8eSopenharmony_ci * Whether the query rule is added 13961847f8eSopenharmony_ci * 14061847f8eSopenharmony_ci * @param { bigint } rule 14161847f8eSopenharmony_ci * @returns { boolean } the result of whether the query rule is added. 14261847f8eSopenharmony_ci * @throws { BusinessError } 401 - the parameter check failed, only one bigint type parameter is needed 14361847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.HiChecker 14461847f8eSopenharmony_ci * @since 9 14561847f8eSopenharmony_ci */ 14661847f8eSopenharmony_ci function containsCheckRule(rule: bigint): boolean; 14761847f8eSopenharmony_ci} 14861847f8eSopenharmony_ciexport default hichecker; 149