• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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