161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci* Copyright (C) 2021-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_ciimport type { AsyncCallback } from './@ohos.base';
2261847f8eSopenharmony_ci
2361847f8eSopenharmony_ci/**
2461847f8eSopenharmony_ci * This module provides the capability to query faultlog data.
2561847f8eSopenharmony_ci * @namespace FaultLogger
2661847f8eSopenharmony_ci * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
2761847f8eSopenharmony_ci * @since 8
2861847f8eSopenharmony_ci */
2961847f8eSopenharmony_ci
3061847f8eSopenharmony_ci
3161847f8eSopenharmony_cideclare namespace FaultLogger {
3261847f8eSopenharmony_ci  /**
3361847f8eSopenharmony_ci   * The type of fault type.
3461847f8eSopenharmony_ci   * @enum { number }
3561847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
3661847f8eSopenharmony_ci   * @since 8
3761847f8eSopenharmony_ci   */
3861847f8eSopenharmony_ci  enum FaultType {
3961847f8eSopenharmony_ci    /**
4061847f8eSopenharmony_ci     * NO_SPECIFIC log type not distinguished.
4161847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
4261847f8eSopenharmony_ci     * @since 8
4361847f8eSopenharmony_ci     */
4461847f8eSopenharmony_ci    NO_SPECIFIC = 0,
4561847f8eSopenharmony_ci    /**
4661847f8eSopenharmony_ci     * CPP_CRASH CPP crash log type.
4761847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
4861847f8eSopenharmony_ci     * @since 8
4961847f8eSopenharmony_ci     */
5061847f8eSopenharmony_ci    CPP_CRASH = 2,
5161847f8eSopenharmony_ci    /**
5261847f8eSopenharmony_ci     * JS_CRASH JS crash log type.
5361847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
5461847f8eSopenharmony_ci     * @since 8
5561847f8eSopenharmony_ci     */
5661847f8eSopenharmony_ci    JS_CRASH = 3,
5761847f8eSopenharmony_ci    /**
5861847f8eSopenharmony_ci     * APP_FREEZE app freeze log type.
5961847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
6061847f8eSopenharmony_ci     * @since 8
6161847f8eSopenharmony_ci     */
6261847f8eSopenharmony_ci    APP_FREEZE = 4,
6361847f8eSopenharmony_ci  }
6461847f8eSopenharmony_ci
6561847f8eSopenharmony_ci  /**
6661847f8eSopenharmony_ci   * Query the result of the current application FaultLog in callback Mode.
6761847f8eSopenharmony_ci   * @param { FaultType } faultType - Fault type to query
6861847f8eSopenharmony_ci   * @param { AsyncCallback<Array<FaultLogInfo>> } callback - Faultlog information data callback function
6961847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
7061847f8eSopenharmony_ci   * @since 8
7161847f8eSopenharmony_ci   * @deprecated since 9
7261847f8eSopenharmony_ci   * @useinstead ohos.faultlogger/FaultLogger#query
7361847f8eSopenharmony_ci   */
7461847f8eSopenharmony_ci  function querySelfFaultLog(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>): void;
7561847f8eSopenharmony_ci
7661847f8eSopenharmony_ci  /**
7761847f8eSopenharmony_ci   * Query the result of the current application FaultLog in return promise mode.
7861847f8eSopenharmony_ci   * @param { FaultType } faultType - Fault type to query
7961847f8eSopenharmony_ci   * @returns { Promise<Array<FaultLogInfo>> } return faultlog information data by promise
8061847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
8161847f8eSopenharmony_ci   * @since 8
8261847f8eSopenharmony_ci   * @deprecated since 9
8361847f8eSopenharmony_ci   * @useinstead ohos.faultlogger/FaultLogger#query
8461847f8eSopenharmony_ci   */
8561847f8eSopenharmony_ci  function querySelfFaultLog(faultType: FaultType): Promise<Array<FaultLogInfo>>;
8661847f8eSopenharmony_ci
8761847f8eSopenharmony_ci  /**
8861847f8eSopenharmony_ci   * Query the result of the current application FaultLog in callback Mode.
8961847f8eSopenharmony_ci   * @param { FaultType } faultType - Fault type to query
9061847f8eSopenharmony_ci   * @param { AsyncCallback<Array<FaultLogInfo>> } callback - Faultlog information data callback function
9161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - The parameter check failed, Parameter type error
9261847f8eSopenharmony_ci   * @throws { BusinessError } 801 - The specified SystemCapability name was not found
9361847f8eSopenharmony_ci   * @throws { BusinessError } 10600001 - The service is not started or is faulty
9461847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
9561847f8eSopenharmony_ci   * @since 9
9661847f8eSopenharmony_ci   */
9761847f8eSopenharmony_ci  function query(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>): void;
9861847f8eSopenharmony_ci
9961847f8eSopenharmony_ci  /**
10061847f8eSopenharmony_ci   * Query the result of the current application FaultLog in return promise mode.
10161847f8eSopenharmony_ci   * @param { FaultType } faultType - Fault type to query
10261847f8eSopenharmony_ci   * @returns { Promise<Array<FaultLogInfo>> } return faultlog information data by promise
10361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - The parameter check failed, Parameter type error
10461847f8eSopenharmony_ci   * @throws { BusinessError } 801 - The specified SystemCapability name was not found
10561847f8eSopenharmony_ci   * @throws { BusinessError } 10600001 - The service is not started or is faulty
10661847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
10761847f8eSopenharmony_ci   * @since 9
10861847f8eSopenharmony_ci   */
10961847f8eSopenharmony_ci  function query(faultType: FaultType): Promise<Array<FaultLogInfo>>;
11061847f8eSopenharmony_ci
11161847f8eSopenharmony_ci  /**
11261847f8eSopenharmony_ci   * FaultLog information data structure.
11361847f8eSopenharmony_ci   * @interface FaultLogInfo
11461847f8eSopenharmony_ci   * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
11561847f8eSopenharmony_ci   * @since 8
11661847f8eSopenharmony_ci   */
11761847f8eSopenharmony_ci  interface FaultLogInfo {
11861847f8eSopenharmony_ci    /**
11961847f8eSopenharmony_ci     * Process id.
12061847f8eSopenharmony_ci     * @type { number }
12161847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
12261847f8eSopenharmony_ci     * @since 8
12361847f8eSopenharmony_ci     */
12461847f8eSopenharmony_ci    pid: number;
12561847f8eSopenharmony_ci
12661847f8eSopenharmony_ci    /**
12761847f8eSopenharmony_ci     * User id.
12861847f8eSopenharmony_ci     * @type { number }
12961847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
13061847f8eSopenharmony_ci     * @since 8
13161847f8eSopenharmony_ci     */
13261847f8eSopenharmony_ci    uid: number;
13361847f8eSopenharmony_ci
13461847f8eSopenharmony_ci    /**
13561847f8eSopenharmony_ci     * Fault type.
13661847f8eSopenharmony_ci     * @type { FaultType }
13761847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
13861847f8eSopenharmony_ci     * @since 8
13961847f8eSopenharmony_ci     */
14061847f8eSopenharmony_ci    type: FaultType;
14161847f8eSopenharmony_ci
14261847f8eSopenharmony_ci    /**
14361847f8eSopenharmony_ci     * Second level timestamp.
14461847f8eSopenharmony_ci     * @type { number }
14561847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
14661847f8eSopenharmony_ci     * @since 8
14761847f8eSopenharmony_ci     */
14861847f8eSopenharmony_ci    timestamp: number;
14961847f8eSopenharmony_ci
15061847f8eSopenharmony_ci    /**
15161847f8eSopenharmony_ci     * Fault reason.
15261847f8eSopenharmony_ci     * @type { string }
15361847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
15461847f8eSopenharmony_ci     * @since 8
15561847f8eSopenharmony_ci     */
15661847f8eSopenharmony_ci    reason: string;
15761847f8eSopenharmony_ci
15861847f8eSopenharmony_ci    /**
15961847f8eSopenharmony_ci     * Fault module.
16061847f8eSopenharmony_ci     * @type { string }
16161847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
16261847f8eSopenharmony_ci     * @since 8
16361847f8eSopenharmony_ci     */
16461847f8eSopenharmony_ci    module: string;
16561847f8eSopenharmony_ci
16661847f8eSopenharmony_ci    /**
16761847f8eSopenharmony_ci     * Fault summary.
16861847f8eSopenharmony_ci     * @type { string }
16961847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
17061847f8eSopenharmony_ci     * @since 8
17161847f8eSopenharmony_ci     */
17261847f8eSopenharmony_ci    summary: string;
17361847f8eSopenharmony_ci
17461847f8eSopenharmony_ci    /**
17561847f8eSopenharmony_ci     * Fault log.
17661847f8eSopenharmony_ci     * @type { string }
17761847f8eSopenharmony_ci     * @syscap SystemCapability.HiviewDFX.Hiview.FaultLogger
17861847f8eSopenharmony_ci     * @since 8
17961847f8eSopenharmony_ci     */
18061847f8eSopenharmony_ci    fullLog: string;
18161847f8eSopenharmony_ci  }
18261847f8eSopenharmony_ci}
18361847f8eSopenharmony_ci
18461847f8eSopenharmony_ciexport default FaultLogger;
185