1 /* 2 * Copyright (c) 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 #ifndef RESOURCE_MANAGER_ADDON_H 17 #define RESOURCE_MANAGER_ADDON_H 18 19 #include "context.h" 20 #include "napi/native_api.h" 21 #include "napi/native_node_api.h" 22 #include "resource_manager.h" 23 24 namespace OHOS { 25 namespace Global { 26 namespace Resource { 27 class ResourceManagerAddon { 28 public: 29 static napi_value Create(napi_env env, const std::string &bundleName, 30 const std::shared_ptr<ResourceManager> &resMgr, std::shared_ptr<AbilityRuntime::Context> context); 31 32 static bool Init(napi_env env); 33 34 static void Destructor(napi_env env, void *nativeObject, void *finalize_hint); 35 36 ResourceManagerAddon(const std::string &bundleName, const std::shared_ptr<ResourceManager> &resMgr, 37 const std::shared_ptr<AbilityRuntime::Context> &context, bool isSystem = false); 38 39 ResourceManagerAddon(const std::shared_ptr<ResourceManager> &resMgr, bool isSystem = false); 40 41 ~ResourceManagerAddon(); 42 43 private: 44 45 static napi_value GetString(napi_env env, napi_callback_info info); 46 47 static napi_value GetStringArray(napi_env env, napi_callback_info info); 48 49 static napi_value GetMedia(napi_env env, napi_callback_info info); 50 51 static napi_value GetMediaBase64(napi_env env, napi_callback_info info); 52 53 static napi_value ProcessNoParam(napi_env env, napi_callback_info info, const std::string &name, 54 napi_async_execute_callback execute); 55 56 static napi_value GetConfiguration(napi_env env, napi_callback_info info); 57 58 static napi_value GetDeviceCapability(napi_env env, napi_callback_info info); 59 60 static napi_value GetPluralString(napi_env env, napi_callback_info info); 61 62 static napi_value New(napi_env env, napi_callback_info info); 63 64 static napi_value GetRawFile(napi_env env, napi_callback_info info); 65 66 static std::string GetResNameOrPath(napi_env env, size_t argc, napi_value *argv); 67 68 static napi_value GetRawFileDescriptor(napi_env env, napi_callback_info info); 69 70 static napi_value CloseRawFileDescriptor(napi_env env, napi_callback_info info); 71 72 static napi_value Release(napi_env env, napi_callback_info info); 73 74 static std::string GetResName(napi_env env, size_t argc, napi_value *argv); 75 76 static napi_value GetMediaByName(napi_env env, napi_callback_info info); 77 78 static napi_value GetMediaBase64ByName(napi_env env, napi_callback_info info); 79 80 static napi_value GetStringByName(napi_env env, napi_callback_info info); 81 82 static napi_value GetStringArrayByName(napi_env env, napi_callback_info info); 83 84 static napi_value GetPluralStringByName(napi_env env, napi_callback_info info); 85 86 static napi_value GetNumber(napi_env env, napi_callback_info info); 87 88 static napi_value GetNumberByName(napi_env env, napi_callback_info info); 89 90 static napi_value GetBoolean(napi_env env, napi_callback_info info); 91 92 static napi_value GetBooleanByName(napi_env env, napi_callback_info info); 93 94 static napi_value GetStringSync(napi_env env, napi_callback_info info); 95 96 static napi_value GetStringByNameSync(napi_env env, napi_callback_info info); 97 98 static napi_value GetStringValue(napi_env env, napi_callback_info info); 99 100 static napi_value GetStringArrayValue(napi_env env, napi_callback_info info); 101 102 static napi_value GetPluralStringValue(napi_env env, napi_callback_info info); 103 104 static napi_value GetMediaContent(napi_env env, napi_callback_info info); 105 106 static napi_value GetMediaContentBase64(napi_env env, napi_callback_info info); 107 108 static napi_value GetRawFileContent(napi_env env, napi_callback_info info); 109 110 static napi_value GetRawFd(napi_env env, napi_callback_info info); 111 112 static napi_value CloseRawFd(napi_env env, napi_callback_info info); 113 114 static napi_value GetDrawableDescriptor(napi_env env, napi_callback_info info); 115 116 static napi_value GetDrawableDescriptorByName(napi_env env, napi_callback_info info); 117 118 static napi_value GetRawFileList(napi_env env, napi_callback_info info); 119 120 static napi_value GetColorByNameSync(napi_env env, napi_callback_info info); 121 122 static napi_value GetColorSync(napi_env env, napi_callback_info info); 123 124 static napi_value GetColor(napi_env env, napi_callback_info info); 125 126 static napi_value GetColorByName(napi_env env, napi_callback_info info); 127 128 static napi_value WrapResourceManager(napi_env env, std::shared_ptr<ResourceManagerAddon> &addon); 129 130 static napi_value AddResource(napi_env env, napi_callback_info info); 131 132 static napi_value RemoveResource(napi_env env, napi_callback_info info); 133 std::string bundleName_; 134 std::shared_ptr<ResourceManager> resMgr_; 135 std::shared_ptr<AbilityRuntime::Context> context_; 136 bool isSystem_; 137 }; 138 } // namespace Resource 139 } // namespace Global 140 } // namespace OHOS 141 #endif