• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_SYNC_IMPL_H
17 #define RESOURCE_MANAGER_NAPI_SYNC_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 ResourceManagerNapiSyncImpl : public ResourceManagerNapiBase {
25 public:
26     ResourceManagerNapiSyncImpl();
27 
28     ~ResourceManagerNapiSyncImpl();
29     /**
30      * Get the resource according to the 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 private:
40 
41     static std::unordered_map<std::string, std::function<napi_value(napi_env&, napi_callback_info&)>> syncFuncMatch;
42 
43     static napi_value GetStringSync(napi_env env, napi_callback_info info);
44 
45     static napi_value GetStringByNameSync(napi_env env, napi_callback_info info);
46 
47     static napi_value GetBoolean(napi_env env, napi_callback_info info);
48 
49     static napi_value GetBooleanByName(napi_env env, napi_callback_info info);
50 
51     static napi_value GetNumber(napi_env env, napi_callback_info info);
52 
53     static napi_value GetNumberByName(napi_env env, napi_callback_info info);
54 
55     static napi_value GetDrawableDescriptor(napi_env env, napi_callback_info info);
56 
57     static napi_value GetDrawableDescriptorByName(napi_env env, napi_callback_info info);
58 
59     static napi_value GetColorSync(napi_env env, napi_callback_info info);
60 
61     static napi_value GetColorByNameSync(napi_env env, napi_callback_info info);
62 
63     static napi_value AddResource(napi_env env, napi_callback_info info);
64 
65     static napi_value RemoveResource(napi_env env, napi_callback_info info);
66 
67     static napi_value GetMediaContentBase64Sync(napi_env env, napi_callback_info info);
68 
69     static napi_value GetMediaContentSync(napi_env env, napi_callback_info info);
70 
71     static napi_value GetPluralStringValueSync(napi_env env, napi_callback_info info);
72 
73     static napi_value GetStringArrayValueSync(napi_env env, napi_callback_info info);
74 
75     static napi_value GetRawFileListSync(napi_env env, napi_callback_info info);
76 
77     static napi_value GetRawFileContentSync(napi_env env, napi_callback_info info);
78 
79     static napi_value GetRawFdSync(napi_env env, napi_callback_info info);
80 
81     static napi_value CloseRawFdSync(napi_env env, napi_callback_info info);
82 
83     static napi_value GetPluralStringByNameSync(napi_env env, napi_callback_info info);
84 
85     static napi_value GetMediaBase64ByNameSync(napi_env env, napi_callback_info info);
86 
87     static napi_value GetMediaByNameSync(napi_env env, napi_callback_info info);
88 
89     static napi_value GetStringArrayByNameSync(napi_env env, napi_callback_info info);
90 
91     static napi_value GetConfigurationSync(napi_env env, napi_callback_info info);
92 
93     static napi_value GetDeviceCapabilitySync(napi_env env, napi_callback_info info);
94 
95     static napi_value GetLocales(napi_env env, napi_callback_info info);
96 
97     static napi_value GetSymbol(napi_env env, napi_callback_info info);
98 
99     static napi_value GetSymbolByName(napi_env env, napi_callback_info info);
100 
101     static napi_value IsRawDir(napi_env env, napi_callback_info info);
102 
103     static napi_value GetOverrideResourceManager(napi_env env, napi_callback_info info);
104 
105     static napi_value GetOverrideConfiguration(napi_env env, napi_callback_info info);
106 
107     static napi_value UpdateOverrideConfiguration(napi_env env, napi_callback_info info);
108 
109     static napi_value GetIntPluralStringValueSync(napi_env env, napi_callback_info info);
110 
111     static napi_value GetDoublePluralStringValueSync(napi_env env, napi_callback_info info);
112 
113     static napi_value GetIntPluralStringByNameSync(napi_env env, napi_callback_info info);
114 
115     static napi_value GetDoublePluralStringByNameSync(napi_env env, napi_callback_info info);
116 
117     static int32_t InitIdResourceAddon(napi_env env, napi_callback_info info,
118         std::unique_ptr<ResMgrDataContext> &dataContext);
119 
120     static int32_t InitNameAddon(napi_env env, napi_callback_info info,
121         std::unique_ptr<ResMgrDataContext> &dataContext);
122 
123     static int32_t InitPathAddon(napi_env env, napi_callback_info info,
124         std::unique_ptr<ResMgrDataContext> &dataContext);
125 
126     static bool InitNapiParameters(napi_env env, napi_callback_info info,
127         std::vector<std::tuple<ResourceManager::NapiValueType, std::string>> &jsParams);
128 
129     static bool InitOptionalParameters(napi_env env, napi_callback_info info, uint32_t startIndex,
130         std::vector<std::tuple<ResourceManager::NapiValueType, std::string>> &jsParams);
131 
132     static bool InitParamsFromParamArray(napi_env env, napi_value value,
133         std::vector<std::tuple<ResourceManager::NapiValueType, std::string>> &jsParams);
134 
135     static int32_t ProcessStrResource(napi_env env, napi_callback_info info,
136         std::unique_ptr<ResMgrDataContext> &dataContext);
137 
138     static int32_t ProcessStrResourceByName(napi_env env, napi_callback_info info,
139         std::unique_ptr<ResMgrDataContext> &dataContext);
140 
141     static int32_t ProcessNumResource(napi_env env, napi_callback_info info,
142         std::unique_ptr<ResMgrDataContext> &dataContext);
143 
144     static int32_t ProcessNumResourceByName(napi_env env, napi_callback_info info,
145         std::unique_ptr<ResMgrDataContext> &dataContext);
146 
147     static int32_t ProcessBoolResource(napi_env env, napi_callback_info info,
148         std::unique_ptr<ResMgrDataContext> &dataContext);
149 
150     static int32_t ProcessColorResource(napi_env env, napi_callback_info info,
151         std::unique_ptr<ResMgrDataContext> &dataContext);
152 
153     static int32_t ProcessColorResourceByName(napi_env env, napi_callback_info info,
154         std::unique_ptr<ResMgrDataContext> &dataContext);
155 
156     static int32_t ProcesstMediaContentBase64Resource(napi_env env, napi_callback_info info,
157         std::unique_ptr<ResMgrDataContext> &dataContext);
158 
159     static int32_t ProcessMediaContentResource(napi_env env, napi_callback_info info,
160         std::unique_ptr<ResMgrDataContext> &dataContext);
161 
162     static int32_t ProcessPluralStringValueResource(napi_env env, napi_callback_info info,
163         std::unique_ptr<ResMgrDataContext> &dataContext);
164 
165     static int32_t ProcessStringArrayValueResource(napi_env env, napi_callback_info info,
166         std::unique_ptr<ResMgrDataContext> &dataContext);
167 
168     static int32_t ProcessPluralStrResourceByName(napi_env env, napi_callback_info info,
169         std::unique_ptr<ResMgrDataContext> &dataContext);
170 
171     static int32_t ProcessMediaBase64ResourceByName(napi_env env, napi_callback_info info,
172         std::unique_ptr<ResMgrDataContext> &dataContext);
173 
174     static int32_t ProcessMediaResourceByName(napi_env env, napi_callback_info info,
175         std::unique_ptr<ResMgrDataContext> &dataContext);
176 
177     static int32_t ProcessStringArrayResourceByName(napi_env env, napi_callback_info info,
178         std::unique_ptr<ResMgrDataContext> &dataContext);
179 
180     static int32_t ProcessSymbolResource(napi_env env, napi_callback_info info,
181         std::unique_ptr<ResMgrDataContext> &dataContext);
182 
183     static int32_t ProcessSymbolResourceByName(napi_env env, napi_callback_info info,
184         std::unique_ptr<ResMgrDataContext> &dataContext);
185 
186     static napi_value ProcessThemeIcon(napi_env env, std::unique_ptr<ResMgrDataContext> &dataContext,
187         std::pair<std::unique_ptr<uint8_t[]>, size_t> &foregroundInfo,
188         std::pair<std::unique_ptr<uint8_t[]>, size_t> &backgroundInfo, std::string &themeMask);
189 
190     static RState getAddonAndConfig(napi_env env, napi_callback_info info,
191         std::unique_ptr<ResMgrDataContext> &dataContext);
192 
193     static int32_t ProcessPluralStringResource(napi_env env, napi_callback_info info,
194         std::unique_ptr<ResMgrDataContext> &dataContext);
195 
196     static int32_t ProcessPluralStringResourceByName(napi_env env, napi_callback_info info,
197         std::unique_ptr<ResMgrDataContext> &dataContext);
198 
199     static RState GetParamsFromArgv(napi_env env, napi_callback_info info,
200         std::unique_ptr<ResMgrDataContext> &dataContext);
201 };
202 } // namespace Resource
203 } // namespace Global
204 } // namespace OHOS
205 #endif