• 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     napi_ref callback = nullptr;
134 };
135 
136 struct AsyncCallbackInfoInfoEnableSlot {
137     napi_env env = nullptr;
138     napi_async_work asyncWork = nullptr;
139     ParametersInfoEnableSlot params;
140     CallbackPromiseInfo info;
141 };
142 
143 struct ParametersInfoIsEnableSlot {
144     NotificationBundleOption option;
145     NotificationConstant::SlotType outType = NotificationConstant::SlotType::OTHER;
146     napi_ref callback = nullptr;
147 };
148 
149 struct AsyncCallbackInfoInfoIsEnableSlot {
150     napi_env env = nullptr;
151     napi_async_work asyncWork = nullptr;
152     ParametersInfoIsEnableSlot params;
153     bool isEnable = false;
154     CallbackPromiseInfo info;
155 };
156 
157 napi_value NapiAddSlot(napi_env env, napi_callback_info info);
158 napi_value NapiAddSlots(napi_env env, napi_callback_info info);
159 napi_value NapiSetSlotByBundle(napi_env env, napi_callback_info info);
160 napi_value NapiGetSlot(napi_env env, napi_callback_info info);
161 napi_value NapiGetSlotNumByBundle(napi_env env, napi_callback_info info);
162 napi_value NapiGetSlots(napi_env env, napi_callback_info info);
163 napi_value NapiGetSlotsByBundle(napi_env env, napi_callback_info info);
164 napi_value NapiRemoveSlot(napi_env env, napi_callback_info info);
165 napi_value NapiRemoveAllSlots(napi_env env, napi_callback_info info);
166 napi_value NapiEnableNotificationSlot(napi_env env, napi_callback_info info);
167 napi_value NapiIsEnableNotificationSlot(napi_env env, napi_callback_info info);
168 
169 napi_value ParseParametersByAddSlot(const napi_env &env, const napi_callback_info &info, ParametersInfoAddSlot &paras);
170 napi_value ParseParametersByAddSlots(
171     const napi_env &env, const napi_callback_info &info, ParametersInfoAddSlots &paras);
172 napi_value ParseParametersSetSlotByBundle(
173     const napi_env &env, const napi_callback_info &info, ParametersInfoSetSlotByBundle &params);
174 napi_value ParseParametersByGetSlot(const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlot &paras);
175 napi_value ParseParametersGetSlotNumByBundle(
176     const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlotNumByBundle &params);
177 napi_value ParseParametersGetSlotsByBundle(
178     const napi_env &env, const napi_callback_info &info, ParametersInfoGetSlotsByBundle &params);
179 napi_value ParseParametersByRemoveSlot(
180     const napi_env &env, const napi_callback_info &info, ParametersInfoRemoveSlot &paras);
181 napi_value ParseParametersEnableSlot(
182     const napi_env &env, const napi_callback_info &info, ParametersInfoEnableSlot &params);
183 napi_value ParseParametersIsEnableSlot(
184     const napi_env &env, const napi_callback_info &info, ParametersInfoIsEnableSlot &params);
185 }  // namespace NotificationNapi
186 }  // namespace OHOS
187 
188 #endif  // BASE_NOTIFICATION_DISTRIBUTED_NOTIFICATION_SERVICE_FRAMEWORKS_JS_NAPI_SLOT_H