1 /* 2 * Copyright (c) 2021-2024 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 OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H 17 #define OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H 18 19 #include "account_info.h" 20 #include "napi_os_account.h" 21 #include "os_account_manager.h" 22 #include "ohos_account_kits.h" 23 24 namespace OHOS { 25 namespace AccountJsKit { 26 constexpr std::int32_t MAX_VALUE_LEN = 4096; 27 constexpr std::int32_t MAX_SUBSCRIBER_NAME_LEN = 1024; 28 constexpr const std::int32_t STR_MAX_SIZE = 256; 29 constexpr int PARAMZERO = 0; 30 constexpr int PARAMONE = 1; 31 constexpr int PARAMTWO = 2; 32 constexpr int PARAMTHREE = 3; 33 constexpr int RESULT_COUNT = 2; 34 constexpr int INVALID_LOCALID = -1; 35 constexpr std::int32_t ARGS_SIZE_ZERO = 0; 36 constexpr std::int32_t ARGS_SIZE_ONE = 1; 37 constexpr std::int32_t ARGS_SIZE_TWO = 2; 38 constexpr std::int32_t ARGS_SIZE_THREE = 3; 39 constexpr std::int32_t ARGS_SIZE_FOUR = 4; 40 41 class NapiCreateDomainCallback final : public DomainAccountCallback { 42 public: 43 NapiCreateDomainCallback(napi_env env, napi_ref callbackRef, napi_deferred deferred); 44 void OnResult(const int32_t errCode, Parcel &parcel) override; 45 46 private: 47 napi_env env_ = nullptr; 48 napi_ref callbackRef_ = nullptr; 49 napi_deferred deferred_ = nullptr; 50 AccountJsKit::ThreadLockInfo lockInfo_; 51 }; 52 53 napi_value WrapVoidToJS(napi_env env); 54 55 bool ParseParaQueryOAByIdCB(napi_env env, napi_callback_info cbInfo, QueryOAByIdAsyncContext *asyncContext); 56 57 void QueryOAByIdExecuteCB(napi_env env, void *data); 58 59 void QueryOAByIdCallbackCompletedCB(napi_env env, napi_status status, void *data); 60 61 void GetOACBInfoToJs(napi_env env, OsAccountInfo &info, napi_value &objOAInfo); 62 63 void GetOtherAccountInfoToJs(napi_env env, OsAccountInfo &info, napi_value &objOAInfo); 64 65 void MakeArrayToJs(napi_env env, const std::vector<std::string> &constraints, napi_value jsArray); 66 67 bool ParseParaRemoveOACB(napi_env env, napi_callback_info cbInfo, RemoveOAAsyncContext *asyncContext); 68 69 void RemoveOAExecuteCB(napi_env env, void *data); 70 71 void RemoveOACallbackCompletedCB(napi_env env, napi_status status, void *data); 72 73 bool ParseParaSetOAName(napi_env env, napi_callback_info cbInfo, SetOANameAsyncContext *asyncContext); 74 75 void SetOANameExecuteCB(napi_env env, void *data); 76 77 void SetOANameCallbackCompletedCB(napi_env env, napi_status status, void *data); 78 79 bool ParseParaSetOAConstraints(napi_env env, napi_callback_info cbInfo, SetOAConsAsyncContext *asyncContext); 80 81 void SetOAConsExecuteCB(napi_env env, void *data); 82 83 void SetOAConsCallbackCompletedCB(napi_env env, napi_status status, void *data); 84 85 bool ParseParaActiveOA(napi_env env, napi_callback_info cbInfo, ActivateOAAsyncContext *asyncContext); 86 87 void ActivateOAExecuteCB(napi_env env, void *data); 88 89 void ActivateOACallbackCompletedCB(napi_env env, napi_status status, void *data); 90 91 bool ParseParaDeactivateOA(napi_env env, napi_callback_info cbInfo, ActivateOAAsyncContext *asyncContext); 92 93 void DeactivateOAExecuteCB(napi_env env, void *data); 94 95 void DeactivateOACompletedCB(napi_env env, napi_status status, void *data); 96 97 bool ParseParaCreateOA(napi_env env, napi_callback_info cbInfo, CreateOAAsyncContext *asyncContext); 98 99 bool ParseParaCreateOAForDomain(napi_env env, napi_callback_info cbInfo, 100 CreateOAForDomainAsyncContext *asyncContext); 101 102 void CreateOAExecuteCB(napi_env env, void *data); 103 104 void CreateOAForDomainExecuteCB(napi_env env, void *data); 105 106 void CreateOAForDomainCompletedCB(napi_env env, napi_status status, void *data); 107 108 void CreateOACallbackCompletedCB(napi_env env, napi_status status, void *data); 109 110 void CreateOAForDomainCallbackCompletedWork(uv_work_t *work, int status); 111 112 bool ParseParaGetOACount(napi_env env, napi_callback_info cbInfo, GetOACountAsyncContext *asyncContext); 113 114 void GetOACountExecuteCB(napi_env env, void *data); 115 116 void GetOACountCallbackCompletedCB(napi_env env, napi_status status, void *data); 117 118 bool ParseParaDbDeviceId(napi_env env, napi_callback_info cbInfo, DbDeviceIdAsyncContext *asyncContext); 119 120 void DbDeviceIdExecuteCB(napi_env env, void *data); 121 122 void DbDeviceIdCallbackCompletedCB(napi_env env, napi_status status, void *data); 123 124 bool ParseParaGetAllCons(napi_env env, napi_callback_info cbInfo, GetAllConsAsyncContext *asyncContext); 125 126 void GetAllConsExecuteCB(napi_env env, void *data); 127 128 void GetAllConsCallbackCompletedCB(napi_env env, napi_status status, void *data); 129 130 void GetAllAccountCons(napi_env env, const std::vector<std::string> &info, napi_value &result); 131 132 bool ParseParaProcessId(napi_env env, napi_callback_info cbInfo, GetIdAsyncContext *asyncContext); 133 134 void GetProcessIdExecuteCB(napi_env env, void *data); 135 136 void GetProcessIdCallbackCompletedCB(napi_env env, napi_status status, void *data); 137 138 bool ParseQueryAllCreateOA(napi_env env, napi_callback_info cbInfo, QueryCreateOAAsyncContext *asyncContext); 139 140 bool ParseQueryActiveIds(napi_env env, napi_callback_info cbInfo, QueryActiveIdsAsyncContext *asyncContext); 141 142 void QueryCreateOAExecuteCB(napi_env env, void *data); 143 144 void QueryActiveIdsExecuteCB(napi_env env, void *data); 145 146 void QueryCreateOACallbackCompletedCB(napi_env env, napi_status status, void *data); 147 148 void QueryActiveIdsCallbackCompletedCB(napi_env env, napi_status status, void *data); 149 150 void GetForegroundOALocalIdExecuteCB(napi_env env, void *data); 151 152 void GetForegroundOALocalIdCallbackCompletedCB(napi_env env, napi_status status, void *data); 153 154 void QueryOAInfoForResult(napi_env env, const std::vector<OsAccountInfo> &info, napi_value &result); 155 156 bool ParseParaGetPhoto(napi_env env, napi_callback_info cbInfo, GetOAPhotoAsyncContext *asyncContext); 157 158 void GetOsAccountNameExecuteCB(napi_env env, void *data); 159 160 void GetOsAccountNameCallbackCompletedCB(napi_env env, napi_status status, void *data); 161 162 void GetOAPhotoExecuteCB(napi_env env, void *data); 163 164 void GetOAPhotoCallbackCompletedCB(napi_env env, napi_status status, void *data); 165 166 bool ParseParaCurrentOA(napi_env env, napi_callback_info cbInfo, CurrentOAAsyncContext *asyncContext); 167 168 void QueryCurrentOAExecuteCB(napi_env env, void *data); 169 170 void QueryCurrentOACallbackCompletedCB(napi_env env, napi_status status, void *data); 171 172 bool ParseParaGetIdByUid(napi_env env, napi_callback_info cbInfo, GetIdByUidAsyncContext *asyncContext); 173 174 bool ParseParaGetIdByDomain(napi_env env, napi_callback_info cbInfo, GetIdByDomainAsyncContext *asyncContext); 175 176 void GetIdByUidExecuteCB(napi_env env, void *data); 177 178 void GetBundleIdByUidExecuteCB(napi_env env, void *data); 179 180 void GetIdByDomainExecuteCB(napi_env env, void *data); 181 182 void GetIdByUidCallbackCompletedCB(napi_env env, napi_status status, void *data); 183 184 void GetBundleIdByUidCallbackCompletedCB(napi_env env, napi_status status, void *data); 185 186 void GetIdByDomainCallbackCompletedCB(napi_env env, napi_status status, void *data); 187 188 bool ParseParaSetPhoto(napi_env env, napi_callback_info cbInfo, SetOAPhotoAsyncContext *asyncContext); 189 190 void SetPhotoExecuteCB(napi_env env, void *data); 191 192 void SetPhotoCompletedCB(napi_env env, napi_status status, void *data); 193 194 bool ParseParaQueryMaxNum(napi_env env, napi_callback_info cbInfo, QueryMaxNumAsyncContext *asyncContext); 195 196 void QueryMaxNumExecuteCB(napi_env env, void *data); 197 198 void QueryMaxNumCompletedCB(napi_env env, napi_status status, void *data); 199 200 bool ParseParaIsActived(napi_env env, napi_callback_info cbInfo, IsActivedAsyncContext *asyncContext); 201 202 void IsActivedExecuteCB(napi_env env, void *data); 203 204 void IsActivedCompletedCB(napi_env env, napi_status status, void *data); 205 206 bool ParseParaIsEnable(napi_env env, napi_callback_info cbInfo, IsConEnableAsyncContext *asyncContext); 207 208 void IsEnableExecuteCB(napi_env env, void *data); 209 210 void IsEnableCompletedCB(napi_env env, napi_status status, void *data); 211 212 bool ParseParaGetType(napi_env env, napi_callback_info cbInfo, GetTypeAsyncContext *asyncContext); 213 214 void GetTypeExecuteCB(napi_env env, void *data); 215 216 void GetTypeCompletedCB(napi_env env, napi_status status, void *data); 217 218 bool ParseParaIsMultiEn(napi_env env, napi_callback_info cbInfo, IsMultiEnAsyncContext *asyncContext); 219 220 void IsMultiEnExecuteCB(napi_env env, void *data); 221 222 void IsMultiEnCompletedCB(napi_env env, napi_status status, void *data); 223 224 bool ParseParaIsVerified(napi_env env, napi_callback_info cbInfo, IsVerifiedAsyncContext *asyncContext); 225 226 void IsVerifiedExecuteCB(napi_env env, void *data); 227 228 void IsVerifiedCompletedCB(napi_env env, napi_status status, void *data); 229 230 bool ParseParaSerialNumId(napi_env env, napi_callback_info cbInfo, GetSerialNumIdCBInfo *asyncContext); 231 232 void SerialNumIdExecuteCB(napi_env env, void *data); 233 234 void SerialNumIdCompletedCB(napi_env env, napi_status status, void *data); 235 236 bool ParseParaGetSerialNum(napi_env env, napi_callback_info cbInfo, GetSerialNumForOAInfo *asyncContext); 237 238 void GetSerialNumExecuteCB(napi_env env, void *data); 239 240 void GetSerialNumCompletedCB(napi_env env, napi_status status, void *data); 241 242 bool ParseParaIsTestOA(napi_env env, napi_callback_info cbInfo, IsTestOAInfo *asyncContext); 243 244 bool ParseParaIsMainOA(napi_env env, napi_callback_info cbInfo, IsMainOAInfo *asyncContext); 245 246 bool ParseParaToSubscriber(const napi_env &env, napi_callback_info cbInfo, SubscribeCBInfo *asyncContext, 247 napi_value *thisVar); 248 249 void SubscribeExecuteCB(napi_env env, void *data); 250 251 void SubscribeCompletedCB(napi_env env, napi_status status, void *data); 252 253 bool ParseParaToUnsubscriber( 254 const napi_env &env, napi_callback_info cbInfo, UnsubscribeCBInfo *asyncContext, napi_value *thisVar); 255 256 bool ParseQueryOAConstraintSrcTypes(napi_env env, napi_callback_info cbInfo, 257 QueryOAConstraintSrcTypeContext *asyncContext); 258 259 void QueryOAContSrcTypeExecuteCB(napi_env env, void *data); 260 261 void QueryOAContSrcTypeCallbackCompletedCB(napi_env env, napi_status status, void *data); 262 263 void QueryOAContSrcTypeForResult(napi_env env, const std::vector<ConstraintSourceTypeInfo> &infos, napi_value &result); 264 } // namespace AccountJsKit 265 } // namespace OHOS 266 267 #endif // OS_ACCOUNT_INTERFACES_KITS_NAPI_OSACCOUNT_INCLUDE_NAPI_OS_ACCOUNT_COMMON_H 268