• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_H
17 #define OHOS_WIFI_DEVICE_STUB_H
18 
19 #include <map>
20 #include "iremote_stub.h"
21 #include "i_wifi_device.h"
22 #include "i_wifi_device_callback.h"
23 
24 namespace OHOS {
25 namespace Wifi {
26 class WifiDeviceStub : public IRemoteStub<IWifiDevice> {
27 public:
28     WifiDeviceStub();
29     explicit WifiDeviceStub(int instId);
30     virtual ~WifiDeviceStub();
31 
32     using handleFunc = std::function<void(uint32_t, MessageParcel &, MessageParcel &)>;
33     using HandleFuncMap = std::map<int, handleFunc>;
34 
35     virtual int OnRemoteRequest(
36         uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
37 
38 private:
39     void InitHandleMap();
40     void InitHandleMapEx(void);
41     void InitHandleMapEx2();
42     void OnEnableWifi(uint32_t code, MessageParcel &data, MessageParcel &reply);
43     void OnDisableWifi(uint32_t code, MessageParcel &data, MessageParcel &reply);
44     void OnInitWifiProtect(uint32_t code, MessageParcel &data, MessageParcel &reply);
45     void OnGetWifiProtectRef(uint32_t code, MessageParcel &data, MessageParcel &reply);
46     void OnPutWifiProtectRef(uint32_t code, MessageParcel &data, MessageParcel &reply);
47     void OnIsHeldWifiProtectRef(uint32_t code, MessageParcel &data, MessageParcel &reply);
48     void OnAddDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
49     void OnUpdateDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
50     void OnSetWifiRestrictedList(uint32_t code, MessageParcel &data, MessageParcel &reply);
51     void OnRemoveDevice(uint32_t code, MessageParcel &data, MessageParcel &reply);
52     void OnRemoveAllDevice(uint32_t code, MessageParcel &data, MessageParcel &reply);
53     void OnGetDeviceConfigs(uint32_t code, MessageParcel &data, MessageParcel &reply);
54     void OnGetChangeDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
55     void OnEnableDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
56     void OnDisableDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
57     void OnAllowAutoConnect(uint32_t code, MessageParcel &data, MessageParcel &reply);
58     void OnConnectTo(uint32_t code, MessageParcel &data, MessageParcel &reply);
59     void OnConnect2To(uint32_t code, MessageParcel &data, MessageParcel &reply);
60     void OnStartRoamToNetwork(uint32_t code, MessageParcel &data, MessageParcel &reply);
61     void OnStartConnectToUserSelectNetwork(uint32_t code, MessageParcel &data, MessageParcel &reply);
62     void OnReConnect(uint32_t code, MessageParcel &data, MessageParcel &reply);
63     void OnReAssociate(uint32_t code, MessageParcel &data, MessageParcel &reply);
64     void OnDisconnect(uint32_t code, MessageParcel &data, MessageParcel &reply);
65     void OnStartWps(uint32_t code, MessageParcel &data, MessageParcel &reply);
66     void OnCancelWps(uint32_t code, MessageParcel &data, MessageParcel &reply);
67     void OnIsWifiActive(uint32_t code, MessageParcel &data, MessageParcel &reply);
68     void OnIsMeteredHotspot(uint32_t code, MessageParcel &data, MessageParcel &reply);
69     void OnGetWifiState(uint32_t code, MessageParcel &data, MessageParcel &reply);
70     void OnGetLinkedInfo(uint32_t code, MessageParcel &data, MessageParcel &reply);
71     void OnGetSignalPollInfoArray(uint32_t code, MessageParcel &data, MessageParcel &reply);
72     void OnGetMultiLinkedInfo(uint32_t code, MessageParcel &data, MessageParcel &reply);
73     void OnGetIpInfo(uint32_t code, MessageParcel &data, MessageParcel &reply);
74     void OnGetIpV6Info(uint32_t code, MessageParcel &data, MessageParcel &reply);
75     void OnSetCountryCode(uint32_t code, MessageParcel &data, MessageParcel &reply);
76     void OnGetCountryCode(uint32_t code, MessageParcel &data, MessageParcel &reply);
77     void OnRegisterCallBack(uint32_t code, MessageParcel &data, MessageParcel &reply);
78     void OnGetSignalLevel(uint32_t code, MessageParcel &data, MessageParcel &reply);
79     void OnGetSupportedFeatures(uint32_t code, MessageParcel &data, MessageParcel &reply);
80     void OnGetDeviceMacAdd(uint32_t code, MessageParcel &data, MessageParcel &reply);
81     void OnIsWifiConnected(uint32_t code, MessageParcel &data, MessageParcel &reply);
82     void OnSetLowLatencyMode(uint32_t code, MessageParcel &data, MessageParcel &reply);
83     void OnRemoveCandidateConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
84     void OnIsBandTypeSupported(uint32_t code, MessageParcel &data, MessageParcel &reply);
85     void OnGet5GHzChannelList(uint32_t code, MessageParcel &data, MessageParcel &reply);
86     void OnStartPortalCertification(uint32_t code, MessageParcel &data, MessageParcel &reply);
87     void OnGetDisconnectedReason(uint32_t code, MessageParcel &data, MessageParcel &reply);
88     void OnSetFrozenApp(uint32_t code, MessageParcel& data, MessageParcel& reply);
89     void OnResetAllFrozenApp(uint32_t code, MessageParcel& data, MessageParcel& reply);
90     void OnDisableAutoJoin(uint32_t code, MessageParcel& data, MessageParcel& reply);
91     void OnEnableAutoJoin(uint32_t code, MessageParcel& data, MessageParcel& reply);
92     void OnFactoryReset(uint32_t code, MessageParcel &data, MessageParcel &reply);
93     void OnReceiveNetworkControlInfo(uint32_t code, MessageParcel &data, MessageParcel &reply);
94     void OnLimitSpeed(uint32_t code, MessageParcel &data, MessageParcel &reply);
95     void OnEnableHiLinkHandshake(uint32_t code, MessageParcel &data, MessageParcel &reply);
96     void OnEnableSemiWifi(uint32_t code, MessageParcel &data, MessageParcel &reply);
97     void OnGetWifiDetailState(uint32_t code, MessageParcel &data, MessageParcel &reply);
98     void OnSetSatelliteState(uint32_t code, MessageParcel &data, MessageParcel &reply);
99     void OnSetLowTxPower(uint32_t code, MessageParcel &data, MessageParcel &reply);
100     void OnSetTxPower(uint32_t code, MessageParcel &data, MessageParcel &reply);
101     void OnGetDeviceConfig(uint32_t code, MessageParcel &data, MessageParcel &reply);
102     void OnSetDpiMarkRule(uint32_t code, MessageParcel &data, MessageParcel &reply);
103     void OnIsFeatureSupported(uint32_t code, MessageParcel &data, MessageParcel &reply);
104     void OnUpdateNetworkLagInfo(uint32_t code, MessageParcel &data, MessageParcel &reply);
105     void OnFetchWifiSignalInfoForVoWiFi(uint32_t code, MessageParcel &data, MessageParcel &reply);
106     void OnIsSupportVoWifiDetect(uint32_t code, MessageParcel &data, MessageParcel &reply);
107     void OnSetVoWifiDetectMode(uint32_t code, MessageParcel &data, MessageParcel &reply);
108     void OnGetVoWifiDetectMode(uint32_t code, MessageParcel &data, MessageParcel &reply);
109     void OnSetVoWifiDetectPeriod(uint32_t code, MessageParcel &data, MessageParcel &reply);
110     void OnGetVoWifiDetectPeriod(uint32_t code, MessageParcel &data, MessageParcel &reply);
111 
112 private:
113     void ReadEapConfig(MessageParcel &data, WifiEapConfig &wifiEapConfig);
114     void ReadWifiDeviceConfig(MessageParcel &data, WifiDeviceConfig &config);
115     void ReadIpAddress(MessageParcel &data, WifiIpAddress &address);
116     void WriteEapConfig(MessageParcel &reply, const WifiEapConfig &wifiEapConfig);
117     void BigDataWriteEapConfig(const WifiEapConfig &wifiEapConfig, std::stringstream &bigDataStream);
118     void WriteWifiDeviceConfig(MessageParcel &reply, const WifiDeviceConfig &config);
119     void WriteWifiDeviceConfigProxyExtral(MessageParcel &reply, const WifiDeviceConfig &config);
120     void WriteIpAddress(MessageParcel &reply, const WifiIpAddress &address);
121     void BigDataWriteIpAddress(const WifiIpAddress &address, std::stringstream &bigDataStream);
122     void SendDeviceConfig(int32_t ashmemSize, std::vector<WifiDeviceConfig> &result, MessageParcel &reply);
123     void WriteWifiLinkedInfo(MessageParcel &reply, const WifiLinkedInfo &wifiInfo);
124     void SendMultiLinkedInfo(uint32_t contentSize, std::vector<WifiLinkedInfo> &result, MessageParcel &reply);
125 #ifdef DYNAMIC_UNLOAD_SA
126     virtual void StopUnloadStaTimer(void) = 0;
127 #endif
128 
129 private:
130     HandleFuncMap handleFuncMap;
131     std::mutex deathRecipientMutex;
132     sptr<IRemoteObject::DeathRecipient> deathRecipient_;
133     bool mSingleCallback;
134 
135 protected:
136     int m_instId{0};
137 };
138 }  // namespace Wifi
139 }  // namespace OHOS
140 #endif
141