1 /*
2 * Copyright (c) 2021-2022 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 "form_dump_mgr.h"
17
18 #include "form_cache_mgr.h"
19 #include "hilog_wrapper.h"
20
21 namespace OHOS {
22 namespace AppExecFwk {
23 const std::string LINE_SEPARATOR = "\n";
24
FormDumpMgr()25 FormDumpMgr::FormDumpMgr() {}
~FormDumpMgr()26 FormDumpMgr::~FormDumpMgr() {}
27 /**
28 * @brief Dump all of form storage infos.
29 * @param storageInfos Form storage infos
30 * @param formInfos Form storage dump info.
31 */
DumpStorageFormInfos(const std::vector<FormDBInfo> & storageInfos,std::string & formInfos) const32 void FormDumpMgr::DumpStorageFormInfos(const std::vector<FormDBInfo> &storageInfos, std::string &formInfos) const
33 {
34 for (const auto &info : storageInfos) {
35 formInfos += " FormId #" + std::to_string(info.formId) + "\n";
36 formInfos += " formName [" + info.formName + "]\n";
37 formInfos += " userId [" + std::to_string(info.userId) + "]\n";
38 formInfos += " bundleName [" + info.bundleName + "]\n";
39 formInfos += " moduleName [" + info.moduleName + "]\n";
40 formInfos += " abilityName [" + info.abilityName + "]\n";
41 formInfos += " formUserUids [";
42 for (const auto &uId : info.formUserUids) {
43 formInfos += " Uid[" + std::to_string(uId) + "] ";
44 }
45 formInfos += "]\n" + LINE_SEPARATOR;
46 }
47 }
48 /**
49 * @brief Dump form infos.
50 * @param formRecordInfos Form record infos.
51 * @param formInfos Form dump infos.
52 */
DumpFormInfos(const std::vector<FormRecord> & formRecordInfos,std::string & formInfos) const53 void FormDumpMgr::DumpFormInfos(const std::vector<FormRecord> &formRecordInfos, std::string &formInfos) const
54 {
55 HILOG_INFO("%{public}s called.", __func__);
56 for (const auto &info : formRecordInfos) {
57 formInfos += " FormId [" + std::to_string(info.formId) + "]\n";
58 formInfos += " formName [" + info.formName + "]\n";
59 formInfos += " bundleName [" + info.bundleName + "]\n";
60 formInfos += " moduleName [" + info.moduleName + "]\n";
61 formInfos += " abilityName [" + info.abilityName + "]\n";
62 formInfos += " isInited [" + std::to_string(info.isInited) + "]\n";
63 formInfos += " needRefresh [" + std::to_string(info.needRefresh) + "]\n";
64 formInfos += " isEnableUpdate [" + std::to_string(info.isEnableUpdate) + "]\n";
65 formInfos += " isCountTimerRefresh [" + std::to_string(info.isCountTimerRefresh) + "]\n";
66 formInfos += " specification [" + std::to_string(info.specification) + "]\n";
67 formInfos += " updateDuration [" + std::to_string(info.updateDuration) + "]\n";
68 formInfos += " updateAtHour [" + std::to_string(info.updateAtHour) + "]\n";
69 formInfos += " updateAtMin [" + std::to_string(info.updateAtMin) + "]\n";
70 formInfos += " formTempFlag [" + std::to_string(info.formTempFlag) + "]\n";
71 formInfos += " formVisibleNotify [" + std::to_string(info.formVisibleNotify) + "]\n";
72 formInfos += " formVisibleNotifyState [" + std::to_string(info.formVisibleNotifyState) + "]\n";
73 formInfos += " userId [" + std::to_string(info.userId) + "]\n";
74 formInfos += " type [" + std::to_string(static_cast<int32_t>(info.type)) + "]\n";
75
76 if (!info.hapSourceDirs.empty()) {
77 formInfos += " hapSourceDirs [";
78 for (const auto &hapDir : info.hapSourceDirs) {
79 formInfos += " hapSourceDir[" + hapDir + "]";
80 }
81 formInfos += "]\n";
82 }
83
84 if (!info.formUserUids.empty()) {
85 formInfos += " formUserUids [";
86 for (const auto &uId : info.formUserUids) {
87 formInfos += " Uid[" + std::to_string(uId) + "] ";
88 }
89 formInfos += "]\n";
90 }
91
92 // formCacheData
93 std::string strCacheData;
94 if (FormCacheMgr::GetInstance().GetData(info.formId, strCacheData)) {
95 formInfos += " formCacheData [";
96 formInfos += strCacheData;
97 formInfos += "]\n" + LINE_SEPARATOR;
98 }
99 }
100
101 HILOG_DEBUG("%{public}s success. Form infos:%{private}s", __func__, formInfos.c_str());
102 }
103 /**
104 * @brief Dump form infos.
105 * @param formRecordInfo Form Host record info.
106 * @param formInfo Form dump info.
107 */
DumpFormHostInfo(const FormHostRecord & formHostRecord,std::string & formInfo) const108 void FormDumpMgr::DumpFormHostInfo(const FormHostRecord &formHostRecord, std::string &formInfo) const
109 {
110 HILOG_INFO("%{public}s called.", __func__);
111 formInfo += " ================FormHostRecord=================\n";
112 formInfo += " callerUid [" + std::to_string(formHostRecord.GetCallerUid()) + "]\n";
113 formInfo += " hostBundleName [" + formHostRecord.GetHostBundleName() + "]\n";
114 HILOG_DEBUG("%{public}s success. Host Form infos:%{private}s", __func__, formInfo.c_str());
115 }
116
117 /**
118 * @brief Dump form infos.
119 * @param formRecordInfo Form record info.
120 * @param formInfo Form dump info.
121 */
DumpFormInfo(const FormRecord & formRecordInfo,std::string & formInfo) const122 void FormDumpMgr::DumpFormInfo(const FormRecord &formRecordInfo, std::string &formInfo) const
123 {
124 HILOG_INFO("%{public}s called.", __func__);
125 formInfo += " ================FormRecord=================\n";
126 formInfo += " FormId [" + std::to_string(formRecordInfo.formId) + "]\n";
127 formInfo += " formName [" + formRecordInfo.formName + "]\n";
128 formInfo += " bundleName [" + formRecordInfo.bundleName + "]\n";
129 formInfo += " moduleName [" + formRecordInfo.moduleName + "]\n";
130 formInfo += " abilityName [" + formRecordInfo.abilityName + "]\n";
131 formInfo += " isInited [" + std::to_string(formRecordInfo.isInited) + "]\n";
132 formInfo += " needRefresh [" + std::to_string(formRecordInfo.needRefresh) + "]\n";
133 formInfo += " isEnableUpdate [" + std::to_string(formRecordInfo.isEnableUpdate) + "]\n";
134 formInfo += " isCountTimerRefresh [" + std::to_string(formRecordInfo.isCountTimerRefresh) + "]\n";
135 formInfo += " specification [" + std::to_string(formRecordInfo.specification) + "]\n";
136 formInfo += " updateDuration [" + std::to_string(formRecordInfo.updateDuration) + "]\n";
137 formInfo += " updateAtHour [" + std::to_string(formRecordInfo.updateAtHour) + "]\n";
138 formInfo += " updateAtMin [" + std::to_string(formRecordInfo.updateAtMin) + "]\n";
139 formInfo += " formTempFlag [" + std::to_string(formRecordInfo.formTempFlag) + "]\n";
140 formInfo += " formVisibleNotify [" + std::to_string(formRecordInfo.formVisibleNotify) + "]\n";
141 formInfo += " formVisibleNotifyState [" + std::to_string(formRecordInfo.formVisibleNotifyState) + "]\n";
142 formInfo += " formSrc [" + formRecordInfo.formSrc + "]\n";
143 formInfo += " designWidth [" + std::to_string(formRecordInfo.formWindow.designWidth) + "]\n";
144 formInfo += " autoDesignWidth [" + std::to_string(formRecordInfo.formWindow.autoDesignWidth) + "]\n";
145 formInfo += " versionCode [" + std::to_string(formRecordInfo.versionCode) + "]\n";
146 formInfo += " versionName [" + formRecordInfo.versionName + "]\n";
147 formInfo += " compatibleVersion [" + std::to_string(formRecordInfo.compatibleVersion) + "]\n";
148 formInfo += " userId [" + std::to_string(formRecordInfo.userId) + "]\n";
149
150 if (!formRecordInfo.hapSourceDirs.empty()) {
151 formInfo += " hapSourceDirs [";
152 for (const auto &hapDir : formRecordInfo.hapSourceDirs) {
153 formInfo += " hapSourceDir[" + hapDir + "] ";
154 }
155 formInfo += "]\n";
156 }
157
158 if (!formRecordInfo.formUserUids.empty()) {
159 formInfo += " formUserUids [";
160 for (const auto &uId : formRecordInfo.formUserUids) {
161 formInfo += " Uid[" + std::to_string(uId) + "] ";
162 }
163 formInfo += "]\n";
164 }
165
166 // formCacheData
167 std::string strCacheData;
168 if (FormCacheMgr::GetInstance().GetData(formRecordInfo.formId, strCacheData)) {
169 formInfo += " formCacheData[";
170 formInfo += strCacheData;
171 formInfo += "]\n" + LINE_SEPARATOR;
172 }
173
174 HILOG_DEBUG("%{public}s success. Form infos:%{private}s", __func__, formInfo.c_str());
175 }
176 } // namespace AppExecFwk
177 } // namespace OHOS