1/*
2 * Copyright (c) 2024 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
16#ifndef UDMF_RADAR_REPORTER_H
17#define UDMF_RADAR_REPORTER_H
18
19#include "hisysevent_c.h"
20#include "visibility.h"
21#include <string>
22
23namespace OHOS {
24namespace UDMF {
25namespace RadarReporter {
26enum BizScene : int32_t {
27    SET_DATA = 1,
28    SYNC_DATA = 2,
29    GET_DATA = 3,
30    UTD_REGISTER = 4
31};
32
33enum SetDataStage : int32_t {
34    SET_DATA_BEGIN = 1,
35    VERIFY_SHARE_PERMISSIONS = 2,
36    GERERATE_DFS_URI = 3,
37    SET_DATA_END = 4
38};
39
40enum SyncDataStage : int32_t {
41    SYNC_BEGIN = 1,
42    SYNC_END = 2
43};
44
45enum GetDataStage : int32_t {
46    GET_DATA_BEGIN = 1,
47    VERIFY_PRIVILEGE = 2,
48    GRANT_URI_PERMISSION = 3,
49    GET_DATA_END = 4
50};
51
52enum UtdRegisterStage : int32_t {
53    UTD_REGISTER_BEGIN = 1,
54    UTD_REGISTER_END = 2,
55};
56
57enum StageRes : int32_t {
58    IDLE = 0,
59    SUCCESS = 1,
60    FAILED = 2,
61    CANCELLED = 3
62};
63
64enum BizState : int32_t {
65    DFX_BEGIN = 0,
66    DFX_NORMAL_END = 1,
67    DFX_ABNORMAL_END = 2
68};
69const constexpr char DOMAIN[] = "DISTDATAMGR";
70const constexpr char EVENT_NAME[] = "DISTRIBUTED_UDMF_BEHAVIOR";
71const constexpr char ORG_PKG[] = "distributeddata";
72} // namespace RadarReporter
73
74class API_EXPORT RadarReporterAdapter {
75public:
76    static  void ReportNormal(const std::string &func, int32_t scene, int32_t stage, int32_t stageRes, int32_t state);
77    static  void ReportFail(
78        const std::string &func, int32_t scene, int32_t stage, int32_t stageRes, int32_t errorCode, int32_t state);
79    static  void ReportFail(const std::string &func, int32_t scene, int32_t stage, int32_t stageRes, int32_t errorCode);
80};
81} // namespace UDMF
82} // namespace OHOS
83#endif // UDMF_RADAR_REPORTER_H