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_NAPI_ASYNC_IMPL_H 17 #define RESOURCE_MANAGER_NAPI_ASYNC_IMPL_H 18 19 #include "resource_manager_napi_base.h" 20 #include "resource_manager_data_context.h" 21 namespace OHOS { 22 namespace Global { 23 namespace Resource { 24 class ResourceManagerNapiAsyncImpl : public ResourceManagerNapiBase { 25 public: 26 ResourceManagerNapiAsyncImpl(); 27 28 ~ResourceManagerNapiAsyncImpl(); 29 /** 30 * Get the resource according to function name. 31 * 32 * @param env The environment that the API is invoked under. 33 * @param info The additional information about the context in which the callback was invoked. 34 * @param functionName The function name 35 * @return The resource if resource exist, else errcode and errmessage. 36 */ 37 virtual napi_value GetResource(napi_env env, napi_callback_info info, const std::string &functionName) override; 38 39 /** 40 * Complete asynchronous function, pass the data to application. 41 * 42 * @param env The environment that the API is invoked under. 43 * @param status The result status of napi function. 44 * @param data The callback data passed into function 45 */ 46 static void Complete(napi_env env, napi_status status, void* data); 47 48 private: 49 50 static std::unordered_map<std::string, std::function<napi_value(napi_env&, napi_callback_info&)>> asyncFuncMatch; 51 52 static napi_value GetString(napi_env env, napi_callback_info info); 53 54 static napi_value GetStringArray(napi_env env, napi_callback_info info); 55 56 static napi_value GetMedia(napi_env env, napi_callback_info info); 57 58 static napi_value GetMediaBase64(napi_env env, napi_callback_info info); 59 60 static napi_value GetConfiguration(napi_env env, napi_callback_info info); 61 62 static napi_value GetDeviceCapability(napi_env env, napi_callback_info info); 63 64 static napi_value GetPluralString(napi_env env, napi_callback_info info); 65 66 static napi_value GetRawFile(napi_env env, napi_callback_info info); 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 GetStringValue(napi_env env, napi_callback_info info); 73 74 static napi_value GetStringArrayValue(napi_env env, napi_callback_info info); 75 76 static napi_value GetMediaContent(napi_env env, napi_callback_info info); 77 78 static napi_value GetMediaContentBase64(napi_env env, napi_callback_info info); 79 80 static napi_value GetPluralStringValue(napi_env env, napi_callback_info info); 81 82 static napi_value GetRawFileContent(napi_env env, napi_callback_info info); 83 84 static napi_value GetRawFd(napi_env env, napi_callback_info info); 85 86 static napi_value CloseRawFd(napi_env env, napi_callback_info info); 87 88 static napi_value GetStringByName(napi_env env, napi_callback_info info); 89 90 static napi_value GetStringArrayByName(napi_env env, napi_callback_info info); 91 92 static napi_value GetMediaByName(napi_env env, napi_callback_info info); 93 94 static napi_value GetPluralStringByName(napi_env env, napi_callback_info info); 95 96 static napi_value GetMediaBase64ByName(napi_env env, napi_callback_info info); 97 98 static napi_value GetRawFileList(napi_env env, napi_callback_info info); 99 100 static napi_value GetColor(napi_env env, napi_callback_info info); 101 102 static napi_value GetColorByName(napi_env env, napi_callback_info info); 103 104 static napi_value ProcessIdParamV9(napi_env env, napi_callback_info info, const std::string &name, 105 napi_async_execute_callback execute); 106 107 static napi_value ProcessResourceParamV9(napi_env env, napi_callback_info info, const std::string &name, 108 napi_async_execute_callback execute); 109 110 static napi_value ProcessNameParamV9(napi_env env, napi_callback_info info, const std::string &name, 111 napi_async_execute_callback execute); 112 113 static napi_value ProcessOnlyIdParam(napi_env env, napi_callback_info info, const std::string &name, 114 napi_async_execute_callback execute); 115 116 static napi_value ProcessIdNameParam(napi_env env, napi_callback_info info, const std::string& name, 117 napi_async_execute_callback execute); 118 119 static napi_value ProcessNoParam(napi_env env, napi_callback_info info, const std::string &name, 120 napi_async_execute_callback execute); 121 122 static napi_value GetResult(napi_env env, std::unique_ptr<ResMgrDataContext> &dataContext, 123 const std::string &name, napi_async_execute_callback &execute); 124 }; 125 } // namespace Resource 126 } // namespace Global 127 } // namespace OHOS 128 #endif