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 OHOS_MOCK_WIFI_STA_HAL_INTERFACE_H
17 #define OHOS_MOCK_WIFI_STA_HAL_INTERFACE_H
18 #include <string>
19 #include <vector>
20 #include "wifi_event_callback.h"
21 #include "wifi_native_struct.h"
22 #include "wifi_error_no.h"
23 #include "wifi_msg.h"
24 #include "inter_scan_info.h"
25 
26 namespace OHOS {
27 namespace Wifi {
28 class MockWifiStaHalInterface {
29 public:
30     static MockWifiStaHalInterface &GetInstance(void);
31     void SetRetResult(WifiErrorNo retResult);
32     WifiErrorNo GetRetResult();
33     void SetStaCapabilities(WifiErrorNo retResult);
34     void SetChipsetFeatureCapability(int chipsetFeatureCapability);
35 private:
36     MockWifiStaHalInterface();
37     WifiErrorNo mRetResult;
38     WifiErrorNo mGetStaCapabilities;
39     int chipsetFeatureCapability_;
40 };
41 
42 class WifiStaHalInterface {
43 public:
44     static WifiStaHalInterface &GetInstance(void);
45     WifiErrorNo StartWifi(const std::string &ifaceName = "wlan0");
46     WifiErrorNo StopWifi(void);
47     WifiErrorNo Connect(int networkId);
48     WifiErrorNo Reconnect(void);
49     WifiErrorNo Reassociate(void);
50     WifiErrorNo Disconnect(void);
51     WifiErrorNo GetStaCapabilities(unsigned int &capabilities);
52     WifiErrorNo GetStaDeviceMacAddress(std::string &mac);
53     WifiErrorNo SetWifiCountryCode(const std::string &ifaceName, const std::string &code);
54     WifiErrorNo GetSupportFrequencies(const std::string &ifaceName, int band, std::vector<int> &frequencies);
55     WifiErrorNo SetConnectMacAddr(const std::string &ifaceName, const std::string &mac);
56     WifiErrorNo SetScanMacAddress(const std::string &mac);
57     WifiErrorNo DisconnectLastRoamingBssid(const std::string &mac);
58     WifiErrorNo GetSupportFeature(long &feature);
59     WifiErrorNo SetTxPower(const std::string &ifaceName, int power);
60     WifiErrorNo Scan(const std::string &ifaceName, const WifiHalScanParam &scanParam);
61     WifiErrorNo QueryScanInfos(const std::string &ifaceName, std::vector<InterScanInfo> &scanInfos);
62     WifiErrorNo StartPnoScan(const std::string &ifaceName, const WifiHalPnoScanParam &scanParam);
63     WifiErrorNo StopPnoScan(const std::string &ifaceName);
64     WifiErrorNo RemoveDevice(int networkId);
65     WifiErrorNo ClearDeviceConfig(void) const;
66     WifiErrorNo GetNextNetworkId(int &networkId);
67     WifiErrorNo EnableNetwork(int networkId);
68     WifiErrorNo DisableNetwork(int networkId);
69     WifiErrorNo SetDeviceConfig(int networkId, const WifiHalDeviceConfig &config);
70     WifiErrorNo GetDeviceConfig(WifiHalGetDeviceConfig &config);
71     WifiErrorNo SaveDeviceConfig(void);
72     WifiErrorNo RegisterStaEventCallback(const WifiEventCallback &callback);
73     WifiErrorNo StartWpsPbcMode(const WifiHalWpsConfig &config);
74     WifiErrorNo StartWpsPinMode(const WifiHalWpsConfig &config, int &pinCode);
75     WifiErrorNo StopWps(void);
76     WifiErrorNo GetRoamingCapabilities(WifiHalRoamCapability &capability);
77     WifiErrorNo SetBssid(int networkId, const std::string &bssid);
78     WifiErrorNo SetRoamConfig(const WifiHalRoamConfig &config);
79     WifiErrorNo WpaAutoConnect(int enable);
80     WifiErrorNo WpaBlocklistClear();
81     WifiErrorNo GetNetworkList(std::vector<WifiHalWpaNetworkInfo> &networkList);
82     WifiErrorNo GetConnectSignalInfo(const std::string &ifaceName, const std::string &endBssid,
83         WifiHalWpaSignalInfo &info);
84     WifiErrorNo SetPmMode(const std::string &ifaceName, int frequency, int mode);
85     WifiErrorNo SetDpiMarkRule(const std::string &ifaceName, int uid, int protocol, int enable);
86     WifiErrorNo ShellCmd(const std::string &ifName, const std::string &cmd);
87     WifiErrorNo GetPskPassphrase(const std::string &ifName, std::string &psk);
88     WifiErrorNo GetChipsetCategory(const std::string &ifaceName, int& chipsetCategory);
89     WifiErrorNo GetChipsetWifiFeatrureCapability(const std::string &ifaceName, int& chipsetFeatrureCapability);
90     WifiErrorNo SetNetworkInterfaceUpDown(const std::string &ifaceName, bool upDown);
91     const WifiEventCallback &GetCallbackInst(void) const;
92     const std::function<void(int)> &GetDeathCallbackInst(void) const;
93     WifiErrorNo RegisterNativeProcessCallback(const std::function<void(int)> &callback);
94 public:
95     WifiHalWpaSignalInfo mInfo;
96 private:
97     WifiEventCallback mStaCallback;
98     std::function<void(int)> mDeathCallback;
99     WifiHalRoamCapability mCapability;
100 };
101 }  // namespace Wifi
102 }  // namespace OHOS
103 
104 #endif