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 GetScanInfos(napi_env env, napi_callback_info info); 30 napi_value GetScanResults(napi_env env, napi_callback_info info); 31 napi_value AddDeviceConfig(napi_env env, napi_callback_info info); 32 napi_value AddUntrustedConfig(napi_env env, napi_callback_info info); 33 napi_value RemoveUntrustedConfig(napi_env env, napi_callback_info info); 34 napi_value AddCandidateConfig(napi_env env, napi_callback_info info); 35 napi_value RemoveCandidateConfig(napi_env env, napi_callback_info info); 36 napi_value ConnectToCandidateConfig(napi_env env, napi_callback_info info); 37 napi_value GetCandidateConfigs(napi_env env, napi_callback_info info); 38 napi_value ConnectToNetwork(napi_env env, napi_callback_info info); 39 napi_value ConnectToDevice(napi_env env, napi_callback_info info); 40 napi_value IsConnected(napi_env env, napi_callback_info info); 41 napi_value Disconnect(napi_env env, napi_callback_info info); 42 napi_value GetSignalLevel(napi_env env, napi_callback_info info); 43 napi_value ReConnect(napi_env env, napi_callback_info info); 44 napi_value ReAssociate(napi_env env, napi_callback_info info); 45 napi_value GetIpInfo(napi_env env, napi_callback_info info); 46 napi_value GetLinkedInfo(napi_env env, napi_callback_info info); 47 napi_value RemoveDevice(napi_env env, napi_callback_info info); 48 napi_value RemoveAllNetwork(napi_env env, napi_callback_info info); 49 napi_value DisableNetwork(napi_env env, napi_callback_info info); 50 napi_value GetCountryCode(napi_env env, napi_callback_info info); 51 napi_value GetDeviceConfigs(napi_env env, napi_callback_info info); 52 napi_value UpdateNetwork(napi_env env, napi_callback_info info); 53 napi_value GetSupportedFeatures(napi_env env, napi_callback_info info); 54 napi_value IsFeatureSupported(napi_env env, napi_callback_info info); 55 napi_value GetDeviceMacAddress(napi_env env, napi_callback_info info); 56 57 class ScanInfoAsyncContext : public AsyncContext { 58 public: 59 std::vector<WifiScanInfo> vecScanInfos; 60 61 ScanInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)62 AsyncContext(env, work, deferred){} 63 64 ScanInfoAsyncContext() = delete; 65 ~ScanInfoAsyncContext()66 virtual ~ScanInfoAsyncContext(){} 67 }; 68 69 class DeviceConfigContext : public AsyncContext { 70 public: 71 WifiDeviceConfig *config; 72 int networkId; 73 bool isCandidate; 74 75 DeviceConfigContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)76 AsyncContext(env, work, deferred) { 77 config = nullptr; 78 networkId = -1; 79 isCandidate = false; 80 } 81 82 DeviceConfigContext() = delete; 83 ~DeviceConfigContext()84 virtual ~DeviceConfigContext() {} 85 }; 86 87 class LinkedInfoAsyncContext : public AsyncContext { 88 public: 89 WifiLinkedInfo linkedInfo; 90 91 LinkedInfoAsyncContext(napi_env env, napi_async_work work = nullptr, napi_deferred deferred = nullptr) : AsyncContext(env,work,deferred)92 AsyncContext(env, work, deferred){} 93 94 LinkedInfoAsyncContext() = delete; 95 ~LinkedInfoAsyncContext()96 virtual ~LinkedInfoAsyncContext(){} 97 }; 98 } // namespace Wifi 99 } // namespace OHOS 100 101 #endif 102