1 /* 2 * Copyright (C) 2021 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 WIFI_NAPI_DEVICE_H_ 17 #define WIFI_NAPI_DEVICE_H_ 18 19 #include "wifi_napi_utils.h" 20 #include "wifi_device.h" 21 #include "wifi_scan.h" 22 23 namespace OHOS { 24 namespace Wifi { 25 napi_value EnableWifi(napi_env env, napi_callback_info info); 26 napi_value DisableWifi(napi_env env, napi_callback_info info); 27 napi_value IsWifiActive(napi_env env, napi_callback_info info); 28 napi_value Scan(napi_env env, napi_callback_info info); 29 napi_value StartScan(napi_env env, napi_callback_info info); 30 napi_value GetScanInfos(napi_env env, napi_callback_info info); 31 napi_value GetScanInfoResults(napi_env env, napi_callback_info info); 32 napi_value GetScanResults(napi_env env, napi_callback_info info); 33 napi_value GetScanInfoList(napi_env env, napi_callback_info info); 34 napi_value AddDeviceConfig(napi_env env, napi_callback_info info); 35 napi_value AddUntrustedConfig(napi_env env, napi_callback_info info); 36 napi_value RemoveUntrustedConfig(napi_env env, napi_callback_info info); 37 napi_value AddCandidateConfig(napi_env env, napi_callback_info info); 38 napi_value RemoveCandidateConfig(napi_env env, napi_callback_info info); 39 napi_value ConnectToCandidateConfig(napi_env env, napi_callback_info info); 40 napi_value GetCandidateConfigs(napi_env env, napi_callback_info info); 41 napi_value ConnectToNetwork(napi_env env, napi_callback_info info); 42 napi_value ConnectToDevice(napi_env env, napi_callback_info info); 43 napi_value IsConnected(napi_env env, napi_callback_info info); 44 napi_value Disconnect(napi_env env, napi_callback_info info); 45 napi_value GetSignalLevel(napi_env env, napi_callback_info info); 46 napi_value ReConnect(napi_env env, napi_callback_info info); 47 napi_value ReAssociate(napi_env env, napi_callback_info info); 48 napi_value GetIpInfo(napi_env env, napi_callback_info info); 49 napi_value GetIpv6Info(napi_env env, napi_callback_info info); 50 napi_value GetLinkedInfo(napi_env env, napi_callback_info info); 51 napi_value GetDisconnectedReason(napi_env env, napi_callback_info info); 52 napi_value RemoveDevice(napi_env env, napi_callback_info info); 53 napi_value RemoveAllNetwork(napi_env env, napi_callback_info info); 54 napi_value DisableNetwork(napi_env env, napi_callback_info info); 55 napi_value GetCountryCode(napi_env env, napi_callback_info info); 56 napi_value GetDeviceConfigs(napi_env env, napi_callback_info info); 57 napi_value UpdateNetwork(napi_env env, napi_callback_info info); 58 napi_value GetSupportedFeatures(napi_env env, napi_callback_info info); 59 napi_value IsFeatureSupported(napi_env env, napi_callback_info info); 60 napi_value GetDeviceMacAddress(napi_env env, napi_callback_info info); 61 napi_value IsBandTypeSupported(napi_env env, napi_callback_info info); 62 napi_value Get5GHzChannelList(napi_env env, napi_callback_info info); 63 napi_value SetScanOnlyAvailable(napi_env env, napi_callback_info info); 64 napi_value GetScanOnlyAvailable(napi_env env, napi_callback_info info); 65 66 class ScanInfoAsyncContext : public AsyncContext { 67 public: 68 std::vector<WifiScanInfo> vecScanInfos; 69 70 ScanInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)71 AsyncContext(env, work, deferred){} 72 73 ScanInfoAsyncContext() = delete; 74 ~ScanInfoAsyncContext()75 virtual ~ScanInfoAsyncContext(){} 76 }; 77 78 class DeviceConfigContext : public AsyncContext { 79 public: 80 WifiDeviceConfig *config; 81 int networkId; 82 bool isCandidate; 83 84 DeviceConfigContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)85 AsyncContext(env, work, deferred) { 86 config = nullptr; 87 networkId = -1; 88 isCandidate = false; 89 } 90 91 DeviceConfigContext() = delete; 92 ~DeviceConfigContext()93 virtual ~DeviceConfigContext() {} 94 }; 95 96 class LinkedInfoAsyncContext : public AsyncContext { 97 public: 98 WifiLinkedInfo linkedInfo; 99 100 LinkedInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)101 AsyncContext(env, work, deferred){} 102 103 LinkedInfoAsyncContext() = delete; 104 ~LinkedInfoAsyncContext()105 virtual ~LinkedInfoAsyncContext(){} 106 }; 107 } // namespace Wifi 108 } // namespace OHOS 109 110 #endif 111