1 /*
2 * Copyright (c) 2025-2025 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 #include "data_center/form_basic_info_mgr.h"
16
17 #include "fms_log_wrapper.h"
18 #include "form_mgr_errors.h"
19
20 namespace OHOS {
21 namespace AppExecFwk {
22 const std::string INVALID_VALUE = "";
23
FormBasicInfoMgr()24 FormBasicInfoMgr::FormBasicInfoMgr()
25 {
26 HILOG_INFO("Create");
27 }
28
~FormBasicInfoMgr()29 FormBasicInfoMgr::~FormBasicInfoMgr()
30 {
31 HILOG_INFO("Destroy");
32 }
33
AddFormBasicInfo(const FormBasicInfo & baseInfo)34 void FormBasicInfoMgr::AddFormBasicInfo(const FormBasicInfo &baseInfo)
35 {
36 HILOG_INFO("FormBasicInfoMgr::AddFormBasicInfo");
37 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
38 auto iter = formBasicInfoMap_.find(baseInfo.formId);
39 if (iter != formBasicInfoMap_.end()) {
40 iter->second = baseInfo;
41 return;
42 }
43 formBasicInfoMap_.emplace(baseInfo.formId, baseInfo);
44 }
45
DeleteFormBasicInfo(int64_t formId)46 void FormBasicInfoMgr::DeleteFormBasicInfo(int64_t formId)
47 {
48 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
49 auto iter = formBasicInfoMap_.find(formId);
50 if (iter != formBasicInfoMap_.end()) {
51 formBasicInfoMap_.erase(iter);
52 }
53 }
54
ClearFormBasicInfo()55 void FormBasicInfoMgr::ClearFormBasicInfo()
56 {
57 formBasicInfoMap_.clear();
58 }
59
GetBasicInfoCount() const60 int FormBasicInfoMgr::GetBasicInfoCount() const
61 {
62 return formBasicInfoMap_.size();
63 }
64
GetBasicInfoByFormId(int64_t formId,FormBasicInfo & basicInfo)65 bool FormBasicInfoMgr::GetBasicInfoByFormId(int64_t formId, FormBasicInfo &basicInfo)
66 {
67 HILOG_DEBUG("get form basic info by formId");
68 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
69 auto iter = formBasicInfoMap_.find(formId);
70 if (iter != formBasicInfoMap_.end()) {
71 HILOG_DEBUG("get form basic info successfully");
72 basicInfo = iter->second;
73 return true;
74 }
75 HILOG_ERROR("form basic info not find");
76 return false;
77 }
78
GetFormAbilityName(int64_t formId)79 const std::string& FormBasicInfoMgr::GetFormAbilityName(int64_t formId)
80 {
81 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
82 const auto iter = formBasicInfoMap_.find(formId);
83 if (iter != formBasicInfoMap_.end()) {
84 return iter->second.abilityName;
85 }
86 return INVALID_VALUE;
87 }
88
GetFormBundleName(int64_t formId)89 const std::string& FormBasicInfoMgr::GetFormBundleName(int64_t formId)
90 {
91 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
92 const auto iter = formBasicInfoMap_.find(formId);
93 if (iter != formBasicInfoMap_.end()) {
94 return iter->second.bundleName;
95 }
96 return INVALID_VALUE;
97 }
98
GetFormModuleName(int64_t formId)99 const std::string& FormBasicInfoMgr::GetFormModuleName(int64_t formId)
100 {
101 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
102 const auto iter = formBasicInfoMap_.find(formId);
103 if (iter != formBasicInfoMap_.end()) {
104 return iter->second.moduleName;
105 }
106 return INVALID_VALUE;
107 }
108
GetFormName(int64_t formId)109 const std::string& FormBasicInfoMgr::GetFormName(int64_t formId)
110 {
111 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
112 const auto iter = formBasicInfoMap_.find(formId);
113 if (iter != formBasicInfoMap_.end()) {
114 return iter->second.formName;
115 }
116 return INVALID_VALUE;
117 }
118
GetFormPackageName(int64_t formId)119 const std::string& FormBasicInfoMgr::GetFormPackageName(int64_t formId)
120 {
121 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
122 const auto iter = formBasicInfoMap_.find(formId);
123 if (iter != formBasicInfoMap_.end()) {
124 return iter->second.packageName;
125 }
126 return INVALID_VALUE;
127 }
128
UpdateAbilityName(int64_t formId,const std::string & abilityName)129 void FormBasicInfoMgr::UpdateAbilityName(int64_t formId, const std::string &abilityName)
130 {
131 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
132 const auto iter = formBasicInfoMap_.find(formId);
133 if (iter != formBasicInfoMap_.end()) {
134 iter->second.abilityName = abilityName;
135 }
136 }
137
UpdateBundleName(int64_t formId,const std::string & bundleName)138 void FormBasicInfoMgr::UpdateBundleName(int64_t formId, const std::string &bundleName)
139 {
140 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
141 const auto iter = formBasicInfoMap_.find(formId);
142 if (iter != formBasicInfoMap_.end()) {
143 iter->second.bundleName = bundleName;
144 }
145 }
146
UpdateModuleName(int64_t formId,const std::string & moduleName)147 void FormBasicInfoMgr::UpdateModuleName(int64_t formId, const std::string &moduleName)
148 {
149 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
150 const auto iter = formBasicInfoMap_.find(formId);
151 if (iter != formBasicInfoMap_.end()) {
152 iter->second.moduleName = moduleName;
153 }
154 }
155
UpdateFormName(int64_t formId,const std::string & formName)156 void FormBasicInfoMgr::UpdateFormName(int64_t formId, const std::string &formName)
157 {
158 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
159 const auto iter = formBasicInfoMap_.find(formId);
160 if (iter != formBasicInfoMap_.end()) {
161 iter->second.formName = formName;
162 }
163 }
164
UpdatePackageName(int64_t formId,const std::string & packageName)165 void FormBasicInfoMgr::UpdatePackageName(int64_t formId, const std::string &packageName)
166 {
167 std::lock_guard<std::mutex> lock(formBasicInfoMutex_);
168 const auto iter = formBasicInfoMap_.find(formId);
169 if (iter != formBasicInfoMap_.end()) {
170 iter->second.packageName = packageName;
171 }
172 }
173 } // namespace AppExecFwk
174 } // namespace OHOS
175