1 /*
2 * Copyright (c) 2021-2023 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 "resource_manager_addon.h"
17 #include "resource_manager_napi_utils.h"
18 #include "hilog/log_cpp.h"
19 #include "system_resource_manager.h"
20
21 namespace OHOS {
22 namespace Global {
23 namespace Resource {
24 static thread_local napi_ref g_constructor = nullptr;
25 static std::shared_ptr<ResourceManager> sysResMgr = nullptr;
26 static std::mutex sysMgrMutex;
27
Create(napi_env env,const std::string & bundleName,const std::shared_ptr<ResourceManager> & resMgr,std::shared_ptr<AbilityRuntime::Context> context)28 napi_value ResourceManagerAddon::Create(
29 napi_env env, const std::string& bundleName, const std::shared_ptr<ResourceManager>& resMgr,
30 std::shared_ptr<AbilityRuntime::Context> context)
31 {
32 std::shared_ptr<ResourceManagerAddon> addon = std::make_shared<ResourceManagerAddon>(bundleName, resMgr, context);
33 return WrapResourceManager(env, addon);
34 }
35
CreateOverrideAddon(napi_env env,const std::shared_ptr<ResourceManager> & resMgr)36 napi_value ResourceManagerAddon::CreateOverrideAddon(napi_env env, const std::shared_ptr<ResourceManager>& resMgr)
37 {
38 std::shared_ptr<ResourceManagerAddon> addon = std::make_shared<ResourceManagerAddon>(bundleName_, resMgr, context_);
39 addon->isOverrideAddon_ = true;
40 return WrapResourceManager(env, addon);
41 }
42
WrapResourceManager(napi_env env,std::shared_ptr<ResourceManagerAddon> & addon)43 napi_value ResourceManagerAddon::WrapResourceManager(napi_env env, std::shared_ptr<ResourceManagerAddon> &addon)
44 {
45 if (!Init(env)) {
46 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to init resource manager addon");
47 return nullptr;
48 }
49
50 napi_value constructor = nullptr;
51 if (g_constructor == nullptr) {
52 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to WrapResourceManager in Create, g_constructor is null");
53 return nullptr;
54 }
55 napi_status status = napi_get_reference_value(env, g_constructor, &constructor);
56 if (status != napi_ok || constructor == nullptr) {
57 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to get reference value in Create, status = %{public}d", status);
58 return nullptr;
59 }
60 napi_value result = nullptr;
61 status = napi_new_instance(env, constructor, 0, nullptr, &result);
62 if (status != napi_ok) {
63 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to new instance in Create, status = %{public}d", status);
64 return nullptr;
65 }
66
67 auto addonPtr = std::make_unique<std::shared_ptr<ResourceManagerAddon>>(addon);
68 status = napi_wrap(env, result, reinterpret_cast<void *>(addonPtr.get()), ResourceManagerAddon::Destructor,
69 nullptr, nullptr);
70 if (status != napi_ok) {
71 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to wrape in Create");
72 return nullptr;
73 }
74 addonPtr.release();
75 return result;
76 }
77
GetSystemResMgr(napi_env env)78 napi_value ResourceManagerAddon::GetSystemResMgr(napi_env env)
79 {
80 if (sysResMgr == nullptr) {
81 std::lock_guard<std::mutex> lock(sysMgrMutex);
82 if (sysResMgr == nullptr) {
83 std::shared_ptr<Global::Resource::ResourceManager>
84 systemResManager(Global::Resource::GetSystemResourceManager());
85 if (systemResManager == nullptr) {
86 ResourceManagerNapiUtils::NapiThrow(env, ERROR_CODE_SYSTEM_RES_MANAGER_GET_FAILED);
87 return nullptr;
88 }
89 sysResMgr = systemResManager;
90 }
91 }
92 std::shared_ptr<ResourceManagerAddon> addon = std::make_shared<ResourceManagerAddon>(sysResMgr, true);
93 return WrapResourceManager(env, addon);
94 }
95
GetSysResourceManager(napi_env env)96 napi_value ResourceManagerAddon::GetSysResourceManager(napi_env env)
97 {
98 auto systemResManager = SystemResourceManager::CreateSysResourceManager();
99 if (systemResManager == nullptr) {
100 ResourceManagerNapiUtils::NapiThrow(env, ERROR_CODE_SYSTEM_RES_MANAGER_GET_FAILED);
101 return nullptr;
102 }
103 std::shared_ptr<ResourceManagerAddon> addon = std::make_shared<ResourceManagerAddon>(systemResManager, true);
104 return WrapResourceManager(env, addon);
105 }
106
ResourceManagerAddon(const std::string & bundleName,const std::shared_ptr<ResourceManager> & resMgr,const std::shared_ptr<AbilityRuntime::Context> & context,bool isSystem)107 ResourceManagerAddon::ResourceManagerAddon(
108 const std::string& bundleName, const std::shared_ptr<ResourceManager>& resMgr,
109 const std::shared_ptr<AbilityRuntime::Context>& context, bool isSystem)
110 : bundleName_(bundleName), resMgr_(resMgr), context_(context), isSystem_(isSystem)
111 {
112 RESMGR_HILOGD(RESMGR_JS_TAG, "create ResourceManagerAddon %{public}s", bundleName_.c_str());
113 napiContext_ = std::make_shared<ResourceManagerNapiContext>();
114 }
115
ResourceManagerAddon(const std::shared_ptr<ResourceManager> & resMgr,bool isSystem)116 ResourceManagerAddon::ResourceManagerAddon(const std::shared_ptr<ResourceManager>& resMgr, bool isSystem)
117 : resMgr_(resMgr), isSystem_(isSystem)
118 {
119 RESMGR_HILOGD(RESMGR_JS_TAG, "create ResourceManagerAddon.");
120 napiContext_ = std::make_shared<ResourceManagerNapiContext>();
121 }
122
~ResourceManagerAddon()123 ResourceManagerAddon::~ResourceManagerAddon()
124 {
125 RESMGR_HILOGD(RESMGR_JS_TAG, "~ResourceManagerAddon %{public}s", bundleName_.c_str());
126 }
127
Destructor(napi_env env,void * nativeObject,void * hint)128 void ResourceManagerAddon::Destructor(napi_env env, void *nativeObject, void *hint)
129 {
130 std::unique_ptr<std::shared_ptr<ResourceManagerAddon>> addonPtr;
131 addonPtr.reset(static_cast<std::shared_ptr<ResourceManagerAddon>*>(nativeObject));
132 }
133
134 napi_property_descriptor ResourceManagerAddon::properties[] = {
135 DECLARE_NAPI_FUNCTION("getString", GetString),
136 DECLARE_NAPI_FUNCTION("getStringByName", GetStringByName),
137 DECLARE_NAPI_FUNCTION("getStringArray", GetStringArray),
138 DECLARE_NAPI_FUNCTION("getStringArrayByName", GetStringArrayByName),
139 DECLARE_NAPI_FUNCTION("getMedia", GetMedia),
140 DECLARE_NAPI_FUNCTION("getMediaByName", GetMediaByName),
141 DECLARE_NAPI_FUNCTION("getMediaBase64", GetMediaBase64),
142 DECLARE_NAPI_FUNCTION("getMediaBase64ByName", GetMediaBase64ByName),
143 DECLARE_NAPI_FUNCTION("getConfiguration", GetConfiguration),
144 DECLARE_NAPI_FUNCTION("getDeviceCapability", GetDeviceCapability),
145 DECLARE_NAPI_FUNCTION("getPluralString", GetPluralString),
146 DECLARE_NAPI_FUNCTION("getPluralStringByName", GetPluralStringByName),
147 DECLARE_NAPI_FUNCTION("getRawFile", GetRawFile),
148 DECLARE_NAPI_FUNCTION("getRawFileDescriptor", GetRawFileDescriptor),
149 DECLARE_NAPI_FUNCTION("closeRawFileDescriptor", CloseRawFileDescriptor),
150 DECLARE_NAPI_FUNCTION("getStringSync", GetStringSync),
151 DECLARE_NAPI_FUNCTION("getStringByNameSync", GetStringByNameSync),
152 DECLARE_NAPI_FUNCTION("getBoolean", GetBoolean),
153 DECLARE_NAPI_FUNCTION("getNumber", GetNumber),
154 DECLARE_NAPI_FUNCTION("getBooleanByName", GetBooleanByName),
155 DECLARE_NAPI_FUNCTION("getNumberByName", GetNumberByName),
156 DECLARE_NAPI_FUNCTION("release", Release),
157 DECLARE_NAPI_FUNCTION("getStringValue", GetStringValue),
158 DECLARE_NAPI_FUNCTION("getStringArrayValue", GetStringArrayValue),
159 DECLARE_NAPI_FUNCTION("getPluralStringValue", GetPluralStringValue),
160 DECLARE_NAPI_FUNCTION("getMediaContent", GetMediaContent),
161 DECLARE_NAPI_FUNCTION("getMediaContentBase64", GetMediaContentBase64),
162 DECLARE_NAPI_FUNCTION("getRawFileContent", GetRawFileContent),
163 DECLARE_NAPI_FUNCTION("getRawFd", GetRawFd),
164 DECLARE_NAPI_FUNCTION("closeRawFd", CloseRawFd),
165 DECLARE_NAPI_FUNCTION("getDrawableDescriptor", GetDrawableDescriptor),
166 DECLARE_NAPI_FUNCTION("getDrawableDescriptorByName", GetDrawableDescriptorByName),
167 DECLARE_NAPI_FUNCTION("getRawFileList", GetRawFileList),
168 DECLARE_NAPI_FUNCTION("getColor", GetColor),
169 DECLARE_NAPI_FUNCTION("getColorByName", GetColorByName),
170 DECLARE_NAPI_FUNCTION("getColorSync", GetColorSync),
171 DECLARE_NAPI_FUNCTION("getColorByNameSync", GetColorByNameSync),
172 DECLARE_NAPI_FUNCTION("addResource", AddResource),
173 DECLARE_NAPI_FUNCTION("removeResource", RemoveResource),
174 DECLARE_NAPI_FUNCTION("getMediaContentBase64Sync", GetMediaContentBase64Sync),
175 DECLARE_NAPI_FUNCTION("getMediaContentSync", GetMediaContentSync),
176 DECLARE_NAPI_FUNCTION("getPluralStringValueSync", GetPluralStringValueSync),
177 DECLARE_NAPI_FUNCTION("getStringArrayValueSync", GetStringArrayValueSync),
178 DECLARE_NAPI_FUNCTION("getRawFileContentSync", GetRawFileContentSync),
179 DECLARE_NAPI_FUNCTION("getRawFdSync", GetRawFdSync),
180 DECLARE_NAPI_FUNCTION("closeRawFdSync", CloseRawFdSync),
181 DECLARE_NAPI_FUNCTION("getRawFileListSync", GetRawFileListSync),
182 DECLARE_NAPI_FUNCTION("getPluralStringByNameSync", GetPluralStringByNameSync),
183 DECLARE_NAPI_FUNCTION("getMediaBase64ByNameSync", GetMediaBase64ByNameSync),
184 DECLARE_NAPI_FUNCTION("getMediaByNameSync", GetMediaByNameSync),
185 DECLARE_NAPI_FUNCTION("getStringArrayByNameSync", GetStringArrayByNameSync),
186 DECLARE_NAPI_FUNCTION("getConfigurationSync", GetConfigurationSync),
187 DECLARE_NAPI_FUNCTION("getDeviceCapabilitySync", GetDeviceCapabilitySync),
188 DECLARE_NAPI_FUNCTION("getLocales", GetLocales),
189 DECLARE_NAPI_FUNCTION("getSymbol", GetSymbol),
190 DECLARE_NAPI_FUNCTION("getSymbolByName", GetSymbolByName),
191 DECLARE_NAPI_FUNCTION("isRawDir", IsRawDir),
192 DECLARE_NAPI_FUNCTION("getOverrideResourceManager", GetOverrideResourceManager),
193 DECLARE_NAPI_FUNCTION("getOverrideConfiguration", GetOverrideConfiguration),
194 DECLARE_NAPI_FUNCTION("updateOverrideConfiguration", UpdateOverrideConfiguration),
195 DECLARE_NAPI_FUNCTION("getIntPluralStringValueSync", GetIntPluralStringValueSync),
196 DECLARE_NAPI_FUNCTION("getDoublePluralStringValueSync", GetDoublePluralStringValueSync),
197 DECLARE_NAPI_FUNCTION("getIntPluralStringByNameSync", GetIntPluralStringByNameSync),
198 DECLARE_NAPI_FUNCTION("getDoublePluralStringByNameSync", GetDoublePluralStringByNameSync)
199 };
200
Init(napi_env env)201 bool ResourceManagerAddon::Init(napi_env env)
202 {
203 if (g_constructor != nullptr) {
204 return true;
205 }
206
207 napi_value constructor;
208 napi_status status = napi_define_class(env, "ResourceManager", NAPI_AUTO_LENGTH, New, nullptr,
209 sizeof(properties) / sizeof(napi_property_descriptor), properties, &constructor);
210 if (status != napi_ok) {
211 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to define class at Init");
212 return false;
213 }
214
215 status = napi_create_reference(env, constructor, 1, &g_constructor);
216 if (status != napi_ok) {
217 RESMGR_HILOGE(RESMGR_JS_TAG, "Failed to create reference at init");
218 return false;
219 }
220 napi_add_env_cleanup_hook(env, [](void *data) { g_constructor = nullptr; }, g_constructor);
221 return true;
222 }
223
New(napi_env env,napi_callback_info info)224 napi_value ResourceManagerAddon::New(napi_env env, napi_callback_info info)
225 {
226 GET_PARAMS(env, info, 1);
227
228 napi_value target = nullptr;
229 napi_get_new_target(env, info, &target);
230 if (target != nullptr) {
231 return thisVar;
232 }
233
234 return nullptr;
235 }
236
Release(napi_env env,napi_callback_info info)237 napi_value ResourceManagerAddon::Release(napi_env env, napi_callback_info info)
238 {
239 napi_value undefined;
240 if (napi_get_undefined(env, &undefined) != napi_ok) {
241 return nullptr;
242 }
243 return undefined;
244 }
245
AddonGetResource(napi_env env,napi_callback_info info,const std::string & name,FunctionType type)246 napi_value ResourceManagerAddon::AddonGetResource(napi_env env, napi_callback_info info, const std::string& name,
247 FunctionType type)
248 {
249 auto addon = ResMgrDataContext::GetResourceManagerAddon(env, info);
250 if (addon == nullptr) {
251 return nullptr;
252 }
253 return addon->napiContext_->ContextGetResource(env, info, name, type);
254 }
255
256 /*====================================Here is the asynchronization function==================================*/
GetString(napi_env env,napi_callback_info info)257 napi_value ResourceManagerAddon::GetString(napi_env env, napi_callback_info info)
258 {
259 return AddonGetResource(env, info, "GetString", FunctionType::ASYNC);
260 }
261
GetStringArray(napi_env env,napi_callback_info info)262 napi_value ResourceManagerAddon::GetStringArray(napi_env env, napi_callback_info info)
263 {
264 return AddonGetResource(env, info, "GetStringArray", FunctionType::ASYNC);
265 }
266
GetMedia(napi_env env,napi_callback_info info)267 napi_value ResourceManagerAddon::GetMedia(napi_env env, napi_callback_info info)
268 {
269 return AddonGetResource(env, info, "GetMedia", FunctionType::ASYNC);
270 }
271
GetMediaBase64(napi_env env,napi_callback_info info)272 napi_value ResourceManagerAddon::GetMediaBase64(napi_env env, napi_callback_info info)
273 {
274 return AddonGetResource(env, info, "GetMediaBase64", FunctionType::ASYNC);
275 }
276
GetConfiguration(napi_env env,napi_callback_info info)277 napi_value ResourceManagerAddon::GetConfiguration(napi_env env, napi_callback_info info)
278 {
279 return AddonGetResource(env, info, "GetConfiguration", FunctionType::ASYNC);
280 }
281
GetDeviceCapability(napi_env env,napi_callback_info info)282 napi_value ResourceManagerAddon::GetDeviceCapability(napi_env env, napi_callback_info info)
283 {
284 return AddonGetResource(env, info, "GetDeviceCapability", FunctionType::ASYNC);
285 }
286
GetPluralString(napi_env env,napi_callback_info info)287 napi_value ResourceManagerAddon::GetPluralString(napi_env env, napi_callback_info info)
288 {
289 return AddonGetResource(env, info, "GetPluralString", FunctionType::ASYNC);
290 }
291
GetRawFile(napi_env env,napi_callback_info info)292 napi_value ResourceManagerAddon::GetRawFile(napi_env env, napi_callback_info info)
293 {
294 return AddonGetResource(env, info, "GetRawFile", FunctionType::ASYNC);
295 }
296
GetRawFileDescriptor(napi_env env,napi_callback_info info)297 napi_value ResourceManagerAddon::GetRawFileDescriptor(napi_env env, napi_callback_info info)
298 {
299 return AddonGetResource(env, info, "GetRawFileDescriptor", FunctionType::ASYNC);
300 }
301
CloseRawFileDescriptor(napi_env env,napi_callback_info info)302 napi_value ResourceManagerAddon::CloseRawFileDescriptor(napi_env env, napi_callback_info info)
303 {
304 return AddonGetResource(env, info, "CloseRawFileDescriptor", FunctionType::ASYNC);
305 }
306
GetPluralStringByName(napi_env env,napi_callback_info info)307 napi_value ResourceManagerAddon::GetPluralStringByName(napi_env env, napi_callback_info info)
308 {
309 return AddonGetResource(env, info, "GetPluralStringByName", FunctionType::ASYNC);
310 }
311
GetMediaBase64ByName(napi_env env,napi_callback_info info)312 napi_value ResourceManagerAddon::GetMediaBase64ByName(napi_env env, napi_callback_info info)
313 {
314 return AddonGetResource(env, info, "GetMediaBase64ByName", FunctionType::ASYNC);
315 }
316
GetMediaByName(napi_env env,napi_callback_info info)317 napi_value ResourceManagerAddon::GetMediaByName(napi_env env, napi_callback_info info)
318 {
319 return AddonGetResource(env, info, "GetMediaByName", FunctionType::ASYNC);
320 }
321
GetStringArrayByName(napi_env env,napi_callback_info info)322 napi_value ResourceManagerAddon::GetStringArrayByName(napi_env env, napi_callback_info info)
323 {
324 return AddonGetResource(env, info, "GetStringArrayByName", FunctionType::ASYNC);
325 }
326
GetStringByName(napi_env env,napi_callback_info info)327 napi_value ResourceManagerAddon::GetStringByName(napi_env env, napi_callback_info info)
328 {
329 return AddonGetResource(env, info, "GetStringByName", FunctionType::ASYNC);
330 }
331
GetStringValue(napi_env env,napi_callback_info info)332 napi_value ResourceManagerAddon::GetStringValue(napi_env env, napi_callback_info info)
333 {
334 return AddonGetResource(env, info, "GetStringValue", FunctionType::ASYNC);
335 }
336
GetStringArrayValue(napi_env env,napi_callback_info info)337 napi_value ResourceManagerAddon::GetStringArrayValue(napi_env env, napi_callback_info info)
338 {
339 return AddonGetResource(env, info, "GetStringArrayValue", FunctionType::ASYNC);
340 }
341
GetMediaContent(napi_env env,napi_callback_info info)342 napi_value ResourceManagerAddon::GetMediaContent(napi_env env, napi_callback_info info)
343 {
344 return AddonGetResource(env, info, "GetMediaContent", FunctionType::ASYNC);
345 }
346
GetMediaContentBase64(napi_env env,napi_callback_info info)347 napi_value ResourceManagerAddon::GetMediaContentBase64(napi_env env, napi_callback_info info)
348 {
349 return AddonGetResource(env, info, "GetMediaContentBase64", FunctionType::ASYNC);
350 }
351
GetPluralStringValue(napi_env env,napi_callback_info info)352 napi_value ResourceManagerAddon::GetPluralStringValue(napi_env env, napi_callback_info info)
353 {
354 return AddonGetResource(env, info, "GetPluralStringValue", FunctionType::ASYNC);
355 }
356
GetRawFileContent(napi_env env,napi_callback_info info)357 napi_value ResourceManagerAddon::GetRawFileContent(napi_env env, napi_callback_info info)
358 {
359 return AddonGetResource(env, info, "GetRawFileContent", FunctionType::ASYNC);
360 }
361
GetRawFd(napi_env env,napi_callback_info info)362 napi_value ResourceManagerAddon::GetRawFd(napi_env env, napi_callback_info info)
363 {
364 return AddonGetResource(env, info, "GetRawFd", FunctionType::ASYNC);
365 }
366
CloseRawFd(napi_env env,napi_callback_info info)367 napi_value ResourceManagerAddon::CloseRawFd(napi_env env, napi_callback_info info)
368 {
369 return AddonGetResource(env, info, "CloseRawFd", FunctionType::ASYNC);
370 }
371
GetRawFileList(napi_env env,napi_callback_info info)372 napi_value ResourceManagerAddon::GetRawFileList(napi_env env, napi_callback_info info)
373 {
374 return AddonGetResource(env, info, "GetRawFileList", FunctionType::ASYNC);
375 }
376
GetColor(napi_env env,napi_callback_info info)377 napi_value ResourceManagerAddon::GetColor(napi_env env, napi_callback_info info)
378 {
379 return AddonGetResource(env, info, "GetColor", FunctionType::ASYNC);
380 }
381
GetColorByName(napi_env env,napi_callback_info info)382 napi_value ResourceManagerAddon::GetColorByName(napi_env env, napi_callback_info info)
383 {
384 return AddonGetResource(env, info, "GetColorByName", FunctionType::ASYNC);
385 }
386
387 /*====================================Here is the synchronization function===================================*/
GetStringSync(napi_env env,napi_callback_info info)388 napi_value ResourceManagerAddon::GetStringSync(napi_env env, napi_callback_info info)
389 {
390 return AddonGetResource(env, info, "GetStringSync", FunctionType::SYNC);
391 }
392
GetStringByNameSync(napi_env env,napi_callback_info info)393 napi_value ResourceManagerAddon::GetStringByNameSync(napi_env env, napi_callback_info info)
394 {
395 return AddonGetResource(env, info, "GetStringByNameSync", FunctionType::SYNC);
396 }
397
GetBoolean(napi_env env,napi_callback_info info)398 napi_value ResourceManagerAddon::GetBoolean(napi_env env, napi_callback_info info)
399 {
400 return AddonGetResource(env, info, "GetBoolean", FunctionType::SYNC);
401 }
402
GetNumber(napi_env env,napi_callback_info info)403 napi_value ResourceManagerAddon::GetNumber(napi_env env, napi_callback_info info)
404 {
405 return AddonGetResource(env, info, "GetNumber", FunctionType::SYNC);
406 }
407
GetNumberByName(napi_env env,napi_callback_info info)408 napi_value ResourceManagerAddon::GetNumberByName(napi_env env, napi_callback_info info)
409 {
410 return AddonGetResource(env, info, "GetNumberByName", FunctionType::SYNC);
411 }
412
GetBooleanByName(napi_env env,napi_callback_info info)413 napi_value ResourceManagerAddon::GetBooleanByName(napi_env env, napi_callback_info info)
414 {
415 return AddonGetResource(env, info, "GetBooleanByName", FunctionType::SYNC);
416 }
417
GetDrawableDescriptor(napi_env env,napi_callback_info info)418 napi_value ResourceManagerAddon::GetDrawableDescriptor(napi_env env, napi_callback_info info)
419 {
420 return AddonGetResource(env, info, "GetDrawableDescriptor", FunctionType::SYNC);
421 }
422
GetDrawableDescriptorByName(napi_env env,napi_callback_info info)423 napi_value ResourceManagerAddon::GetDrawableDescriptorByName(napi_env env, napi_callback_info info)
424 {
425 return AddonGetResource(env, info, "GetDrawableDescriptorByName", FunctionType::SYNC);
426 }
427
GetColorSync(napi_env env,napi_callback_info info)428 napi_value ResourceManagerAddon::GetColorSync(napi_env env, napi_callback_info info)
429 {
430 return AddonGetResource(env, info, "GetColorSync", FunctionType::SYNC);
431 }
432
GetColorByNameSync(napi_env env,napi_callback_info info)433 napi_value ResourceManagerAddon::GetColorByNameSync(napi_env env, napi_callback_info info)
434 {
435 return AddonGetResource(env, info, "GetColorByNameSync", FunctionType::SYNC);
436 }
437
AddResource(napi_env env,napi_callback_info info)438 napi_value ResourceManagerAddon::AddResource(napi_env env, napi_callback_info info)
439 {
440 return AddonGetResource(env, info, "AddResource", FunctionType::SYNC);
441 }
442
RemoveResource(napi_env env,napi_callback_info info)443 napi_value ResourceManagerAddon::RemoveResource(napi_env env, napi_callback_info info)
444 {
445 return AddonGetResource(env, info, "RemoveResource", FunctionType::SYNC);
446 }
447
GetMediaContentBase64Sync(napi_env env,napi_callback_info info)448 napi_value ResourceManagerAddon::GetMediaContentBase64Sync(napi_env env, napi_callback_info info)
449 {
450 return AddonGetResource(env, info, "GetMediaContentBase64Sync", FunctionType::SYNC);
451 }
452
GetMediaContentSync(napi_env env,napi_callback_info info)453 napi_value ResourceManagerAddon::GetMediaContentSync(napi_env env, napi_callback_info info)
454 {
455 return AddonGetResource(env, info, "GetMediaContentSync", FunctionType::SYNC);
456 }
457
GetPluralStringValueSync(napi_env env,napi_callback_info info)458 napi_value ResourceManagerAddon::GetPluralStringValueSync(napi_env env, napi_callback_info info)
459 {
460 return AddonGetResource(env, info, "GetPluralStringValueSync", FunctionType::SYNC);
461 }
462
GetStringArrayValueSync(napi_env env,napi_callback_info info)463 napi_value ResourceManagerAddon::GetStringArrayValueSync(napi_env env, napi_callback_info info)
464 {
465 return AddonGetResource(env, info, "GetStringArrayValueSync", FunctionType::SYNC);
466 }
467
GetRawFileContentSync(napi_env env,napi_callback_info info)468 napi_value ResourceManagerAddon::GetRawFileContentSync(napi_env env, napi_callback_info info)
469 {
470 return AddonGetResource(env, info, "GetRawFileContentSync", FunctionType::SYNC);
471 }
472
GetRawFdSync(napi_env env,napi_callback_info info)473 napi_value ResourceManagerAddon::GetRawFdSync(napi_env env, napi_callback_info info)
474 {
475 return AddonGetResource(env, info, "GetRawFdSync", FunctionType::SYNC);
476 }
477
CloseRawFdSync(napi_env env,napi_callback_info info)478 napi_value ResourceManagerAddon::CloseRawFdSync(napi_env env, napi_callback_info info)
479 {
480 return AddonGetResource(env, info, "CloseRawFdSync", FunctionType::SYNC);
481 }
482
GetRawFileListSync(napi_env env,napi_callback_info info)483 napi_value ResourceManagerAddon::GetRawFileListSync(napi_env env, napi_callback_info info)
484 {
485 return AddonGetResource(env, info, "GetRawFileListSync", FunctionType::SYNC);
486 }
487
GetPluralStringByNameSync(napi_env env,napi_callback_info info)488 napi_value ResourceManagerAddon::GetPluralStringByNameSync(napi_env env, napi_callback_info info)
489 {
490 return AddonGetResource(env, info, "GetPluralStringByNameSync", FunctionType::SYNC);
491 }
492
GetMediaBase64ByNameSync(napi_env env,napi_callback_info info)493 napi_value ResourceManagerAddon::GetMediaBase64ByNameSync(napi_env env, napi_callback_info info)
494 {
495 return AddonGetResource(env, info, "GetMediaBase64ByNameSync", FunctionType::SYNC);
496 }
497
GetMediaByNameSync(napi_env env,napi_callback_info info)498 napi_value ResourceManagerAddon::GetMediaByNameSync(napi_env env, napi_callback_info info)
499 {
500 return AddonGetResource(env, info, "GetMediaByNameSync", FunctionType::SYNC);
501 }
502
GetStringArrayByNameSync(napi_env env,napi_callback_info info)503 napi_value ResourceManagerAddon::GetStringArrayByNameSync(napi_env env, napi_callback_info info)
504 {
505 return AddonGetResource(env, info, "GetStringArrayByNameSync", FunctionType::SYNC);
506 }
507
GetConfigurationSync(napi_env env,napi_callback_info info)508 napi_value ResourceManagerAddon::GetConfigurationSync(napi_env env, napi_callback_info info)
509 {
510 return AddonGetResource(env, info, "GetConfigurationSync", FunctionType::SYNC);
511 }
512
GetDeviceCapabilitySync(napi_env env,napi_callback_info info)513 napi_value ResourceManagerAddon::GetDeviceCapabilitySync(napi_env env, napi_callback_info info)
514 {
515 return AddonGetResource(env, info, "GetDeviceCapabilitySync", FunctionType::SYNC);
516 }
517
GetLocales(napi_env env,napi_callback_info info)518 napi_value ResourceManagerAddon::GetLocales(napi_env env, napi_callback_info info)
519 {
520 return AddonGetResource(env, info, "GetLocales", FunctionType::SYNC);
521 }
522
GetSymbol(napi_env env,napi_callback_info info)523 napi_value ResourceManagerAddon::GetSymbol(napi_env env, napi_callback_info info)
524 {
525 return AddonGetResource(env, info, "GetSymbol", FunctionType::SYNC);
526 }
527
GetSymbolByName(napi_env env,napi_callback_info info)528 napi_value ResourceManagerAddon::GetSymbolByName(napi_env env, napi_callback_info info)
529 {
530 return AddonGetResource(env, info, "GetSymbolByName", FunctionType::SYNC);
531 }
532
IsRawDir(napi_env env,napi_callback_info info)533 napi_value ResourceManagerAddon::IsRawDir(napi_env env, napi_callback_info info)
534 {
535 return AddonGetResource(env, info, "IsRawDir", FunctionType::SYNC);
536 }
537
GetOverrideResourceManager(napi_env env,napi_callback_info info)538 napi_value ResourceManagerAddon::GetOverrideResourceManager(napi_env env, napi_callback_info info)
539 {
540 return AddonGetResource(env, info, "GetOverrideResourceManager", FunctionType::SYNC);
541 }
542
GetOverrideConfiguration(napi_env env,napi_callback_info info)543 napi_value ResourceManagerAddon::GetOverrideConfiguration(napi_env env, napi_callback_info info)
544 {
545 return AddonGetResource(env, info, "GetOverrideConfiguration", FunctionType::SYNC);
546 }
547
UpdateOverrideConfiguration(napi_env env,napi_callback_info info)548 napi_value ResourceManagerAddon::UpdateOverrideConfiguration(napi_env env, napi_callback_info info)
549 {
550 return AddonGetResource(env, info, "UpdateOverrideConfiguration", FunctionType::SYNC);
551 }
552
GetIntPluralStringValueSync(napi_env env,napi_callback_info info)553 napi_value ResourceManagerAddon::GetIntPluralStringValueSync(napi_env env, napi_callback_info info)
554 {
555 return AddonGetResource(env, info, "GetIntPluralStringValueSync", FunctionType::SYNC);
556 }
557
GetDoublePluralStringValueSync(napi_env env,napi_callback_info info)558 napi_value ResourceManagerAddon::GetDoublePluralStringValueSync(napi_env env, napi_callback_info info)
559 {
560 return AddonGetResource(env, info, "GetDoublePluralStringValueSync", FunctionType::SYNC);
561 }
562
GetIntPluralStringByNameSync(napi_env env,napi_callback_info info)563 napi_value ResourceManagerAddon::GetIntPluralStringByNameSync(napi_env env, napi_callback_info info)
564 {
565 return AddonGetResource(env, info, "GetIntPluralStringByNameSync", FunctionType::SYNC);
566 }
567
GetDoublePluralStringByNameSync(napi_env env,napi_callback_info info)568 napi_value ResourceManagerAddon::GetDoublePluralStringByNameSync(napi_env env, napi_callback_info info)
569 {
570 return AddonGetResource(env, info, "GetDoublePluralStringByNameSync", FunctionType::SYNC);
571 }
572 } // namespace Resource
573 } // namespace Global
574 } // namespace OHOS