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