• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 #ifndef BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_JS_NAPI_SLOT_H
16 #define BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_JS_NAPI_SLOT_H
17 
18 #include "common.h"
19 
20 namespace OHOS {
21 namespace NotificationNapi {
22 using namespace OHOS::Notification;
23 
24 struct ParametersInfoAddSlot {
25     NotificationSlot slot;
26     NotificationConstant::SlotType inType = NotificationConstant::SlotType::OTHER;
27     bool isAddSlotByType = false;
28     napi_ref callback = nullptr;
29 };
30 
31 struct AsyncCallbackInfoAddSlot {
32     napi_env env = nullptr;
33     napi_async_work asyncWork = nullptr;
34     NotificationSlot slot;
35     NotificationConstant::SlotType inType = NotificationConstant::SlotType::OTHER;
36     bool isAddSlotByType = false;
37     CallbackPromiseInfo info;
38 };
39 
40 struct ParametersInfoAddSlots {
41     std::vector<NotificationSlot> slots;
42     napi_ref callback = nullptr;
43 };
44 
45 struct AsyncCallbackInfoAddSlots {
46     napi_env env = nullptr;
47     napi_async_work asyncWork = nullptr;
48     std::vector<NotificationSlot> slots;
49     CallbackPromiseInfo info;
50 };
51 
52 struct ParametersInfoSetSlotByBundle {
53     NotificationBundleOption option;
54     std::vector<sptr<NotificationSlot>> slots;
55     napi_ref callback = nullptr;
56 };
57 
58 struct AsyncCallbackInfoSetSlotByBundle {
59     napi_env env = nullptr;
60     napi_async_work asyncWork = nullptr;
61     ParametersInfoSetSlotByBundle params;
62     CallbackPromiseInfo info;
63 };
64 
65 struct ParametersInfoGetSlot {
66     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
67     napi_ref callback = nullptr;
68 };
69 
70 struct AsyncCallbackInfoGetSlot {
71     napi_env env = nullptr;
72     napi_async_work asyncWork = nullptr;
73     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
74     CallbackPromiseInfo info;
75     sptr<NotificationSlot> slot = nullptr;
76 };
77 
78 struct ParametersInfoGetSlotNumByBundle {
79     NotificationBundleOption option;
80     napi_ref callback = nullptr;
81 };
82 
83 struct AsyncCallbackInfoGetSlotNumByBundle {
84     napi_env env = nullptr;
85     napi_async_work asyncWork = nullptr;
86     ParametersInfoGetSlotNumByBundle params;
87     CallbackPromiseInfo info;
88     uint64_t num = 0;
89 };
90 
91 struct AsyncCallbackInfoGetSlots {
92     napi_env env = nullptr;
93     napi_async_work asyncWork = nullptr;
94     CallbackPromiseInfo info;
95     std::vector<sptr<NotificationSlot>> slots;
96 };
97 
98 struct ParametersInfoGetSlotsByBundle {
99     NotificationBundleOption option;
100     napi_ref callback = nullptr;
101 };
102 
103 struct AsyncCallbackInfoGetSlotsByBundle {
104     napi_env env = nullptr;
105     napi_async_work asyncWork = nullptr;
106     ParametersInfoGetSlotsByBundle params;
107     CallbackPromiseInfo info;
108     std::vector<sptr<NotificationSlot>> slots;
109 };
110 
111 struct ParametersInfoRemoveSlot {
112     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
113     napi_ref callback = nullptr;
114 };
115 
116 struct AsyncCallbackInfoRemoveSlot {
117     napi_env env = nullptr;
118     napi_async_work asyncWork = nullptr;
119     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
120     CallbackPromiseInfo info;
121 };
122 
123 struct AsyncCallbackInfoRemoveAllSlots {
124     napi_env env = nullptr;
125     napi_async_work asyncWork = nullptr;
126     CallbackPromiseInfo info;
127 };
128 
129 struct ParametersInfoEnableSlot {
130     NotificationBundleOption option;
131     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
132     bool enable = false;
133     bool isForceControl = false;
134     napi_ref callback = nullptr;
135 };
136 
137 struct AsyncCallbackInfoInfoEnableSlot {
138     napi_env env = nullptr;
139     napi_async_work asyncWork = nullptr;
140     ParametersInfoEnableSlot params;
141     CallbackPromiseInfo info;
142 };
143 
144 struct ParametersInfoIsEnableSlot {
145     NotificationBundleOption option;
146     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
147     napi_ref callback = nullptr;
148 };
149 
150 struct AsyncCallbackInfoInfoIsEnableSlot {
151     napi_env env = nullptr;
152     napi_async_work asyncWork = nullptr;
153     ParametersInfoIsEnableSlot params;
154     bool isEnable = false;
155     CallbackPromiseInfo info;
156 };
157 
158 struct ParametersInfoSetSlotFlagsByBundle {
159     NotificationBundleOption option;
160     uint32_t slotFlags;
161     napi_ref callback = nullptr;
162 };
163 
164 struct ParametersInfoGetSlotFlagsByBundle {
165     NotificationBundleOption option;
166     napi_ref callback = nullptr;
167 };
168 
169 struct AsyncCallbackInfoSetSlotFlagsByBundle {
170     napi_env env = nullptr;
171     napi_async_work asyncWork = nullptr;
172     ParametersInfoSetSlotFlagsByBundle params;
173     CallbackPromiseInfo info;
174 };
175 
176 struct AsyncCallbackInfoGetSlotFlagsByBundle {
177     napi_env env = nullptr;
178     napi_async_work asyncWork = nullptr;
179     ParametersInfoGetSlotFlagsByBundle params;
180     CallbackPromiseInfo info;
181     uint32_t slotFlags = 0;
182 };
183 
184 napi_value NapiAddSlot(napi_env env, napi_callback_info info);
185 napi_value NapiAddSlots(napi_env env, napi_callback_info info);
186 napi_value NapiSetSlotByBundle(napi_env env, napi_callback_info info);
187 napi_value NapiGetSlot(napi_env env, napi_callback_info info);
188 napi_value NapiGetSlotNumByBundle(napi_env env, napi_callback_info info);
189 napi_value NapiGetSlots(napi_env env, napi_callback_info info);
190 napi_value NapiGetSlotsByBundle(napi_env env, napi_callback_info info);
191 napi_value NapiRemoveSlot(napi_env env, napi_callback_info info);
192 napi_value NapiRemoveAllSlots(napi_env env, napi_callback_info info);
193 napi_value NapiEnableNotificationSlot(napi_env env, napi_callback_info info);
194 napi_value NapiIsEnableNotificationSlot(napi_env env, napi_callback_info info);
195 napi_value NapiSetSlotFlagsByBundle(napi_env env, napi_callback_info info);
196 napi_value NapiGetSlotFlagsByBundle(napi_env env, napi_callback_info info);
197 
198 napi_value ParseParametersByAddSlot(const napi_env &env, const napi_callback_info &info, ParametersInfoAddSlot &paras);
199 napi_value ParseParametersByAddSlots(
200     const napi_env &env, const napi_callback_info &info, ParametersInfoAddSlots &paras);
201 napi_value ParseParametersSetSlotByBundle(
202     const napi_env &env, const napi_callback_info &info, ParametersInfoSetSlotByBundle &params);
203 napi_value ParseParametersByGetSlot(const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlot &paras);
204 napi_value ParseParametersGetSlotNumByBundle(
205     const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlotNumByBundle &params);
206 napi_value ParseParametersGetSlotsByBundle(
207     const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlotsByBundle &params);
208 napi_value ParseParametersByRemoveSlot(
209     const napi_env &env, const napi_callback_info &info, ParametersInfoRemoveSlot &paras);
210 napi_value ParseParametersEnableSlot(
211     const napi_env &env, const napi_callback_info &info, ParametersInfoEnableSlot &params);
212 napi_value ParseParametersIsEnableSlot(
213     const napi_env &env, const napi_callback_info &info, ParametersInfoIsEnableSlot &params);
214 napi_value ParseParametersSetSlotFlagsByBundle(
215     const napi_env &env, const napi_callback_info &info, ParametersInfoSetSlotFlagsByBundle &params);
216 napi_value ParseParametersGetSlotFlagsByBundle(
217     const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlotFlagsByBundle &params);
218 }  // namespace NotificationNapi
219 }  // namespace OHOS
220 
221 #endif  // BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_JS_NAPI_SLOT_H