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 OHOS_ABILITY_RUNTIME_DUMP_UTILS_H
17#define OHOS_ABILITY_RUNTIME_DUMP_UTILS_H
18
19#include <string>
20
21namespace OHOS {
22namespace AAFwk {
23/**
24 * @class DumpUtils
25 * provides dump utilities.
26 */
27class DumpUtils final {
28public:
29    enum DumpKey {
30        // dump all
31        KEY_DUMP_ALL = 0,
32
33        // dump stack list
34        KEY_DUMP_STACK_LIST,
35
36        // dump stack
37        KEY_DUMP_STACK,
38
39        // dump mission
40        KEY_DUMP_MISSION,
41
42        // dump top ability
43        KEY_DUMP_TOP_ABILITY,
44
45        // dump wait queue
46        KEY_DUMP_WAIT_QUEUE,
47
48        // dump service
49        KEY_DUMP_SERVICE,
50
51        // dump data
52        KEY_DUMP_DATA,
53
54        // dump focus ability
55        KEY_DUMP_FOCUS_ABILITY,
56
57        // dump window mode
58        KEY_DUMP_WINDOW_MODE,
59
60        // dump mission list
61        KEY_DUMP_MISSION_LIST,
62
63        // dump mission info
64        KEY_DUMP_MISSION_INFOS,
65    };
66
67    enum DumpsysKey {
68        // dump system all
69        KEY_DUMP_SYS_ALL = 0,
70
71        // dump system mission list
72        KEY_DUMP_SYS_MISSION_LIST,
73
74        // dump system ability
75        KEY_DUMP_SYS_ABILITY,
76
77        // dump system service
78        KEY_DUMP_SYS_SERVICE,
79
80        // dump system pending
81        KEY_DUMP_SYS_PENDING,
82
83        // dump system process
84        KEY_DUMP_SYS_PROCESS,
85
86        // dump system data
87        KEY_DUMP_SYS_DATA,
88    };
89
90    /**
91     * DumpMapOne, dump map first function.
92     *
93     * @param argString The argument string.
94     * @return The pair of the dump result and the dump key.
95     */
96    static std::pair<bool, DumpUtils::DumpKey> DumpMapOne(std::string argString);
97
98    /**
99     * DumpMapTwo, dump map second function.
100     *
101     * @param argString The argument string.
102     * @return The pair of the dump result and the dump key.
103     */
104    static std::pair<bool, DumpUtils::DumpKey> DumpMapTwo(std::string argString);
105
106    /**
107     * DumpMap, dump map function.
108     *
109     * @param argString The argument string.
110     * @return The pair of the dump result and the dump key.
111     */
112    static std::pair<bool, DumpUtils::DumpKey> DumpMap(std::string argString);
113
114    /**
115     * DumpsysMap, dump system map function.
116     *
117     * @param argString The argument string.
118     * @return The pair of the dump result and the dump key.
119     */
120    static std::pair<bool, DumpUtils::DumpsysKey> DumpsysMap(std::string argString);
121};
122}  // namespace AAFwk
123}  // namespace OHOS
124#endif //OHOS_ABILITY_RUNTIME_DUMP_UTILS_H
125