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#include "utils/dump_utils.h"
17
18namespace OHOS {
19namespace AAFwk {
20std::pair<bool, DumpUtils::DumpKey> DumpUtils::DumpMapOne(std::string argString)
21{
22    std::pair<bool, DumpUtils::DumpKey> result(false, KEY_DUMP_ALL);
23
24    if (argString.compare("-a") == 0 || argString.compare("--all") == 0) {
25        result.first = true;
26        result.second = KEY_DUMP_ALL;
27    } else if (argString.compare("-l") == 0 || argString.compare("--stack-list") == 0) {
28        result.first = true;
29        result.second = KEY_DUMP_STACK_LIST;
30    } else if (argString.compare("-s") == 0 || argString.compare("--stack") == 0) {
31        result.first = true;
32        result.second = KEY_DUMP_STACK;
33    } else if (argString.compare("-m") == 0 || argString.compare("--mission") == 0) {
34        result.first = true;
35        result.second = KEY_DUMP_MISSION;
36    } else if (argString.compare("-t") == 0 || argString.compare("--top") == 0) {
37        result.first = true;
38        result.second = KEY_DUMP_TOP_ABILITY;
39    } else if (argString.compare("-w") == 0 || argString.compare("--waiting-queue") == 0) {
40        result.first = true;
41        result.second = KEY_DUMP_WAIT_QUEUE;
42    } else if (argString.compare("-e") == 0 || argString.compare("--serv") == 0) {
43        result.first = true;
44        result.second = KEY_DUMP_SERVICE;
45    } else if (argString.compare("-d") == 0 || argString.compare("--data") == 0) {
46        result.first = true;
47        result.second = KEY_DUMP_DATA;
48    } else if (argString.compare("-f") == 0 || argString.compare("-focus") == 0) {
49        result.first = true;
50        result.second = KEY_DUMP_FOCUS_ABILITY;
51    }
52    return result;
53}
54
55std::pair<bool, DumpUtils::DumpKey> DumpUtils::DumpMapTwo(std::string argString)
56{
57    std::pair<bool, DumpUtils::DumpKey> result(false, KEY_DUMP_ALL);
58
59    if (argString.compare("-z") == 0 || argString.compare("--win-mode") == 0) {
60        result.first = true;
61        result.second = KEY_DUMP_WINDOW_MODE;
62    } else if (argString.compare("-L") == 0 || argString.compare("--mission-list") == 0) {
63        result.first = true;
64        result.second = KEY_DUMP_MISSION_LIST;
65    } else if (argString.compare("-S") == 0 || argString.compare("--mission-infos") == 0) {
66        result.first = true;
67        result.second = KEY_DUMP_MISSION_INFOS;
68    }
69    return result;
70}
71
72std::pair<bool, DumpUtils::DumpKey> DumpUtils::DumpMap(std::string argString)
73{
74    std::pair<bool, DumpUtils::DumpKey> result(false, KEY_DUMP_ALL);
75
76    auto dumpMapOne = DumpMapOne(argString);
77    if (dumpMapOne.first) {
78        return dumpMapOne;
79    }
80    auto dumpMapTwo = DumpMapTwo(argString);
81    if (dumpMapTwo.first) {
82        return dumpMapTwo;
83    }
84    return result;
85}
86
87std::pair<bool, DumpUtils::DumpsysKey> DumpUtils::DumpsysMap(std::string argString)
88{
89    std::pair<bool, DumpUtils::DumpsysKey> result(false, KEY_DUMP_SYS_ALL);
90
91    if (argString.compare("-a") == 0 || argString.compare("--all") == 0) {
92        result.first = true;
93        result.second = KEY_DUMP_SYS_ALL;
94    } else if (argString.compare("-l") == 0 || argString.compare("--mission-list") == 0) {
95        result.first = true;
96        result.second = KEY_DUMP_SYS_MISSION_LIST;
97    } else if (argString.compare("-i") == 0 || argString.compare("--ability") == 0) {
98        result.first = true;
99        result.second = KEY_DUMP_SYS_ABILITY;
100    } else if (argString.compare("-e") == 0 || argString.compare("--extension") == 0) {
101        result.first = true;
102        result.second = KEY_DUMP_SYS_SERVICE;
103    } else if (argString.compare("-p") == 0 || argString.compare("--pending") == 0) {
104        result.first = true;
105        result.second = KEY_DUMP_SYS_PENDING;
106    } else if (argString.compare("-r") == 0 || argString.compare("--process") == 0) {
107        result.first = true;
108        result.second = KEY_DUMP_SYS_PROCESS;
109    } else if (argString.compare("-d") == 0 || argString.compare("--data") == 0) {
110        result.first = true;
111        result.second = KEY_DUMP_SYS_DATA;
112    }
113    return result;
114}
115}  // namespace AAFwk
116}  // namespace OHOS
117