1 /* 2 * Copyright (C) 2021-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 16 #ifndef OHOS_WIFI_DEVICE_STUB_LITE_H 17 #define OHOS_WIFI_DEVICE_STUB_LITE_H 18 19 #include <map> 20 #include "i_wifi_device.h" 21 #include "i_wifi_device_callback.h" 22 #include "serializer.h" 23 24 namespace OHOS { 25 namespace Wifi { 26 class WifiDeviceStub : public IWifiDevice { 27 public: 28 WifiDeviceStub(); 29 virtual ~WifiDeviceStub(); 30 31 using HandleFunc = void (WifiDeviceStub::*)(uint32_t code, IpcIo *req, IpcIo *reply); 32 using HandleFuncMap = std::map<int, HandleFunc>; 33 34 virtual int OnRemoteRequest(uint32_t code, IpcIo *req, IpcIo *reply); 35 36 private: 37 void InitHandleMap(); 38 void InitHandleMapEx(void); 39 void OnEnableWifi(uint32_t code, IpcIo *req, IpcIo *reply); 40 void OnDisableWifi(uint32_t code, IpcIo *req, IpcIo *reply); 41 void OnInitWifiProtect(uint32_t code, IpcIo *req, IpcIo *reply); 42 void OnGetWifiProtectRef(uint32_t code, IpcIo *req, IpcIo *reply); 43 void OnPutWifiProtectRef(uint32_t code, IpcIo *req, IpcIo *reply); 44 void OnAddDeviceConfig(uint32_t code, IpcIo *req, IpcIo *reply); 45 void OnUpdateDeviceConfig(uint32_t code, IpcIo *req, IpcIo *reply); 46 void OnRemoveDevice(uint32_t code, IpcIo *req, IpcIo *reply); 47 void OnRemoveAllDevice(uint32_t code, IpcIo *req, IpcIo *reply); 48 void OnGetDeviceConfigs(uint32_t code, IpcIo *req, IpcIo *reply); 49 void OnEnableDeviceConfig(uint32_t code, IpcIo *req, IpcIo *reply); 50 void OnDisableDeviceConfig(uint32_t code, IpcIo *req, IpcIo *reply); 51 void OnConnectTo(uint32_t code, IpcIo *req, IpcIo *reply); 52 void OnConnect2To(uint32_t code, IpcIo *req, IpcIo *reply); 53 void OnReConnect(uint32_t code, IpcIo *req, IpcIo *reply); 54 void OnReAssociate(uint32_t code, IpcIo *req, IpcIo *reply); 55 void OnDisconnect(uint32_t code, IpcIo *req, IpcIo *reply); 56 void OnStartWps(uint32_t code, IpcIo *req, IpcIo *reply); 57 void OnCancelWps(uint32_t code, IpcIo *req, IpcIo *reply); 58 void OnIsWifiActive(uint32_t code, IpcIo *req, IpcIo *reply); 59 void OnGetWifiState(uint32_t code, IpcIo *req, IpcIo *reply); 60 void OnGetLinkedInfo(uint32_t code, IpcIo *req, IpcIo *reply); 61 void OnGetIpInfo(uint32_t code, IpcIo *req, IpcIo *reply); 62 void OnGetIpV6Info(uint32_t code, IpcIo *req, IpcIo *reply); 63 void OnSetCountryCode(uint32_t code, IpcIo *req, IpcIo *reply); 64 void OnGetCountryCode(uint32_t code, IpcIo *req, IpcIo *reply); 65 void OnRegisterCallBack(uint32_t code, IpcIo *req, IpcIo *reply); 66 void OnGetSignalLevel(uint32_t code, IpcIo *req, IpcIo *reply); 67 void OnGetSupportedFeatures(uint32_t code, IpcIo *req, IpcIo *reply); 68 void OnGetDeviceMacAdd(uint32_t code, IpcIo *req, IpcIo *reply); 69 void OnIsWifiConnected(uint32_t code, IpcIo *req, IpcIo *reply); 70 void OnSetLowLatencyMode(uint32_t code, IpcIo *req, IpcIo *reply); 71 void OnIsBandTypeSupported(uint32_t code, IpcIo *req, IpcIo *reply); 72 void OnGet5GHzChannelList(uint32_t code, IpcIo *req, IpcIo *reply); 73 private: 74 void ReadEapConfig(IpcIo *req, WifiEapConfig &wifiEapConfig); 75 void ReadWifiDeviceConfig(IpcIo *req, WifiDeviceConfig &config); 76 void ReadIpAddress(IpcIo *req, WifiIpAddress &address); 77 void WriteEapConfig(IpcIo *reply, const WifiEapConfig &wifiEapConfig); 78 void WriteWifiDeviceConfig(IpcIo *reply, const WifiDeviceConfig &config); 79 void WriteIpAddress(IpcIo *reply, const WifiIpAddress &address); 80 81 private: 82 HandleFuncMap handleFuncMap_; 83 84 protected: 85 int m_instId{0}; 86 }; 87 } // namespace Wifi 88 } // namespace OHOS 89 #endif 90