• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "wifi_config_center.h"
17 #include "wifi_ap_hal_interface.h"
18 #include "wifi_logger.h"
19 
20 DEFINE_WIFILOG_LABEL("WifiConfigCenter");
21 
22 namespace OHOS {
23 namespace Wifi {
GetInstance()24 WifiConfigCenter &WifiConfigCenter::GetInstance()
25 {
26     static WifiConfigCenter gWifiConfigCenter;
27     return gWifiConfigCenter;
28 }
29 
WifiConfigCenter()30 WifiConfigCenter::WifiConfigCenter()
31 {
32     mStaMidState = WifiOprMidState::CLOSED;
33     mApMidState.emplace(0, WifiOprMidState::CLOSED);
34     mP2pMidState = WifiOprMidState::CLOSED;
35     mScanMidState = WifiOprMidState::CLOSED;
36     mWifiOpenedWhenAirplane = false;
37 }
38 
~WifiConfigCenter()39 WifiConfigCenter::~WifiConfigCenter()
40 {}
41 
Init()42 int WifiConfigCenter::Init()
43 {
44     if (WifiSettings::GetInstance().Init() < 0) {
45         WIFI_LOGE("Init wifi settings failed!");
46         return -1;
47     }
48     return 0;
49 }
50 
GetWifiMidState()51 WifiOprMidState WifiConfigCenter::GetWifiMidState()
52 {
53     return mStaMidState.load();
54 }
55 
SetWifiMidState(WifiOprMidState expState,WifiOprMidState state)56 bool WifiConfigCenter::SetWifiMidState(WifiOprMidState expState, WifiOprMidState state)
57 {
58     return mStaMidState.compare_exchange_strong(expState, state);
59 }
60 
SetWifiMidState(WifiOprMidState state)61 void WifiConfigCenter::SetWifiMidState(WifiOprMidState state)
62 {
63     mStaMidState = state;
64 }
65 
SetWifiStaCloseTime()66 void WifiConfigCenter::SetWifiStaCloseTime()
67 {
68     mWifiCloseTime = std::chrono::steady_clock::now();
69 }
70 
GetWifiStaInterval()71 double WifiConfigCenter::GetWifiStaInterval()
72 {
73     std::chrono::steady_clock::time_point curr = std::chrono::steady_clock::now();
74     double drMs = std::chrono::duration<double, std::milli>(curr - mWifiCloseTime).count();
75     return drMs;
76 }
77 
GetWifiState()78 int WifiConfigCenter::GetWifiState()
79 {
80     return WifiSettings::GetInstance().GetWifiState();
81 }
82 
IsScanAlwaysActive()83 bool WifiConfigCenter::IsScanAlwaysActive()
84 {
85     return WifiSettings::GetInstance().GetScanAlwaysState();
86 }
87 
GetScanInfoList(std::vector<WifiScanInfo> & results)88 int WifiConfigCenter::GetScanInfoList(std::vector<WifiScanInfo> &results)
89 {
90     return WifiSettings::GetInstance().GetScanInfoList(results);
91 }
92 
GetScanControlInfo(ScanControlInfo & info)93 int WifiConfigCenter::GetScanControlInfo(ScanControlInfo &info)
94 {
95     return WifiSettings::GetInstance().GetScanControlInfo(info);
96 }
97 
SetScanControlInfo(const ScanControlInfo & info)98 int WifiConfigCenter::SetScanControlInfo(const ScanControlInfo &info)
99 {
100     return WifiSettings::GetInstance().SetScanControlInfo(info);
101 }
102 
AddDeviceConfig(const WifiDeviceConfig & config)103 int WifiConfigCenter::AddDeviceConfig(const WifiDeviceConfig &config)
104 {
105     return WifiSettings::GetInstance().AddDeviceConfig(config);
106 }
107 
RemoveDevice(int networkId)108 int WifiConfigCenter::RemoveDevice(int networkId)
109 {
110     return WifiSettings::GetInstance().RemoveDevice(networkId);
111 }
112 
GetDeviceConfig(std::vector<WifiDeviceConfig> & results)113 int WifiConfigCenter::GetDeviceConfig(std::vector<WifiDeviceConfig> &results)
114 {
115     return WifiSettings::GetInstance().GetDeviceConfig(results);
116 }
117 
GetCandidateConfigs(const int uid,std::vector<WifiDeviceConfig> & results)118 int WifiConfigCenter::GetCandidateConfigs(const int uid, std::vector<WifiDeviceConfig> &results)
119 {
120     return WifiSettings::GetInstance().GetAllCandidateConfig(uid, results);
121 }
122 
SetDeviceState(int networkId,int state,bool bSetOther)123 int WifiConfigCenter::SetDeviceState(int networkId, int state, bool bSetOther)
124 {
125     return WifiSettings::GetInstance().SetDeviceState(networkId, state, bSetOther);
126 }
127 
GetIpInfo(IpInfo & info)128 int WifiConfigCenter::GetIpInfo(IpInfo &info)
129 {
130     return WifiSettings::GetInstance().GetIpInfo(info);
131 }
132 
GetIpv6Info(IpV6Info & info)133 int WifiConfigCenter::GetIpv6Info(IpV6Info &info)
134 {
135     return WifiSettings::GetInstance().GetIpv6Info(info);
136 }
137 
GetLinkedInfo(WifiLinkedInfo & info)138 int WifiConfigCenter::GetLinkedInfo(WifiLinkedInfo &info)
139 {
140     return WifiSettings::GetInstance().GetLinkedInfo(info);
141 }
142 
GetMacAddress(std::string & macAddress)143 int WifiConfigCenter::GetMacAddress(std::string &macAddress)
144 {
145     return WifiSettings::GetInstance().GetMacAddress(macAddress);
146 }
147 
SetCountryCode(const std::string & countryCode)148 int WifiConfigCenter::SetCountryCode(const std::string &countryCode)
149 {
150     return WifiSettings::GetInstance().SetCountryCode(countryCode);
151 }
152 
GetCountryCode(std::string & countryCode)153 int WifiConfigCenter::GetCountryCode(std::string &countryCode)
154 {
155     return WifiSettings::GetInstance().GetCountryCode(countryCode);
156 }
157 
IsLoadStabak()158 bool WifiConfigCenter::IsLoadStabak()
159 {
160     return WifiSettings::GetInstance().IsLoadStabak();
161 }
162 
GetApMidState(int id)163 WifiOprMidState WifiConfigCenter::GetApMidState(int id)
164 {
165     std::unique_lock<std::mutex> lock(mApMutex);
166     auto iter = mApMidState.find(id);
167     if (iter != mApMidState.end()) {
168         return iter->second.load();
169     } else {
170         mApMidState.emplace(id, WifiOprMidState::CLOSED);
171         return mApMidState[id].load();
172     }
173 }
174 
SetApMidState(WifiOprMidState expState,WifiOprMidState state,int id)175 bool WifiConfigCenter::SetApMidState(WifiOprMidState expState, WifiOprMidState state, int id)
176 {
177     std::unique_lock<std::mutex> lock(mApMutex);
178     auto iter = mApMidState.find(id);
179     if (iter != mApMidState.end()) {
180         return iter->second.compare_exchange_strong(expState, state);
181     } else {
182         mApMidState.emplace(id, state);
183         return true;
184     }
185     return false;
186 }
187 
SetApMidState(WifiOprMidState state,int id)188 void WifiConfigCenter::SetApMidState(WifiOprMidState state, int id)
189 {
190     std::unique_lock<std::mutex> lock(mApMutex);
191     auto ret = mApMidState.emplace(id, state);
192     if (!ret.second) {
193         mApMidState[id] = state;
194     }
195 }
196 
GetHotspotState(int id)197 int WifiConfigCenter::GetHotspotState(int id)
198 {
199     return WifiSettings::GetInstance().GetHotspotState(id);
200 }
201 
SetHotspotConfig(const HotspotConfig & config,int id)202 int WifiConfigCenter::SetHotspotConfig(const HotspotConfig &config, int id)
203 {
204     return WifiSettings::GetInstance().SetHotspotConfig(config, id);
205 }
206 
GetHotspotConfig(HotspotConfig & config,int id)207 int WifiConfigCenter::GetHotspotConfig(HotspotConfig &config, int id)
208 {
209     return WifiSettings::GetInstance().GetHotspotConfig(config, id);
210 }
211 
SetHotspotIdleTimeout(int time)212 int WifiConfigCenter::SetHotspotIdleTimeout(int time)
213 {
214     return WifiSettings::GetInstance().SetHotspotIdleTimeout(time);
215 }
216 
GetHotspotIdleTimeout()217 int WifiConfigCenter::GetHotspotIdleTimeout()
218 {
219     return WifiSettings::GetInstance().GetHotspotIdleTimeout();
220 }
221 
GetStationList(std::vector<StationInfo> & results,int id)222 int WifiConfigCenter::GetStationList(std::vector<StationInfo> &results, int id)
223 {
224     return WifiSettings::GetInstance().GetStationList(results, id);
225 }
226 
FindConnStation(const StationInfo & info,int id)227 int WifiConfigCenter::FindConnStation(const StationInfo &info, int id)
228 {
229     return WifiSettings::GetInstance().FindConnStation(info, id);
230 }
231 
GetBlockLists(std::vector<StationInfo> & infos,int id)232 int WifiConfigCenter::GetBlockLists(std::vector<StationInfo> &infos, int id)
233 {
234     return WifiSettings::GetInstance().GetBlockList(infos, id);
235 }
236 
AddBlockList(const StationInfo & info,int id)237 int WifiConfigCenter::AddBlockList(const StationInfo &info, int id)
238 {
239     return WifiSettings::GetInstance().ManageBlockList(info, MODE_ADD, id);
240 }
241 
DelBlockList(const StationInfo & info,int id)242 int WifiConfigCenter::DelBlockList(const StationInfo &info, int id)
243 {
244     return WifiSettings::GetInstance().ManageBlockList(info, MODE_DEL, id);
245 }
246 
GetValidBands(std::vector<BandType> & bands)247 int WifiConfigCenter::GetValidBands(std::vector<BandType> &bands)
248 {
249     return WifiSettings::GetInstance().GetValidBands(bands);
250 }
251 
GetValidChannels(ChannelsTable & channelsInfo)252 int WifiConfigCenter::GetValidChannels(ChannelsTable &channelsInfo)
253 {
254     return WifiSettings::GetInstance().GetValidChannels(channelsInfo);
255 }
256 
GetScanMidState()257 WifiOprMidState WifiConfigCenter::GetScanMidState()
258 {
259     return mScanMidState.load();
260 }
261 
SetScanMidState(WifiOprMidState expState,WifiOprMidState state)262 bool WifiConfigCenter::SetScanMidState(WifiOprMidState expState, WifiOprMidState state)
263 {
264     return mScanMidState.compare_exchange_strong(expState, state);
265 }
266 
SetScanMidState(WifiOprMidState state)267 void WifiConfigCenter::SetScanMidState(WifiOprMidState state)
268 {
269     mScanMidState = state;
270 }
271 
GetSignalLevel(const int & rssi,const int & band)272 int WifiConfigCenter::GetSignalLevel(const int &rssi, const int &band)
273 {
274     return WifiSettings::GetInstance().GetSignalLevel(rssi, band);
275 }
276 
GetP2pMidState()277 WifiOprMidState WifiConfigCenter::GetP2pMidState()
278 {
279     return mP2pMidState.load();
280 }
281 
SetP2pMidState(WifiOprMidState expState,WifiOprMidState state)282 bool WifiConfigCenter::SetP2pMidState(WifiOprMidState expState, WifiOprMidState state)
283 {
284     return mP2pMidState.compare_exchange_strong(expState, state);
285 }
286 
SetP2pMidState(WifiOprMidState state)287 void WifiConfigCenter::SetP2pMidState(WifiOprMidState state)
288 {
289     mP2pMidState = state;
290 }
291 
GetP2pState()292 int WifiConfigCenter::GetP2pState()
293 {
294     return WifiSettings::GetInstance().GetP2pState();
295 }
296 
GetOperatorWifiType()297 int WifiConfigCenter::GetOperatorWifiType()
298 {
299     return WifiSettings::GetInstance().GetOperatorWifiType();
300 }
301 
SetOperatorWifiType(int type)302 int WifiConfigCenter::SetOperatorWifiType(int type)
303 {
304     return WifiSettings::GetInstance().SetOperatorWifiType(type);
305 }
306 
GetCanOpenStaWhenAirplaneMode()307 bool WifiConfigCenter::GetCanOpenStaWhenAirplaneMode()
308 {
309     return WifiSettings::GetInstance().GetCanOpenStaWhenAirplaneMode();
310 }
311 
GetWifiStateWhenAirplaneMode()312 bool WifiConfigCenter::GetWifiStateWhenAirplaneMode()
313 {
314     return mWifiOpenedWhenAirplane.load();
315 }
316 
SetWifiStateWhenAirplaneMode(bool bState)317 void WifiConfigCenter::SetWifiStateWhenAirplaneMode(bool bState)
318 {
319     mWifiOpenedWhenAirplane = bState;
320 }
321 
GetStaLastRunState()322 bool WifiConfigCenter::GetStaLastRunState()
323 {
324     return WifiSettings::GetInstance().GetStaLastRunState();
325 }
326 
SetStaLastRunState(bool bRun)327 int WifiConfigCenter::SetStaLastRunState(bool bRun)
328 {
329     return WifiSettings::GetInstance().SetStaLastRunState(bRun);
330 }
331 
SetScreenState(const int & state)332 void WifiConfigCenter::SetScreenState(const int &state)
333 {
334     WifiSettings::GetInstance().SetScreenState(state);
335 }
336 
GetScreenState() const337 int WifiConfigCenter::GetScreenState() const
338 {
339     return WifiSettings::GetInstance().GetScreenState();
340 }
341 
SetAirplaneModeState(const int & state)342 void WifiConfigCenter::SetAirplaneModeState(const int &state)
343 {
344     WifiSettings::GetInstance().SetAirplaneModeState(state);
345 }
346 
GetAirplaneModeState() const347 int WifiConfigCenter::GetAirplaneModeState() const
348 {
349     return WifiSettings::GetInstance().GetAirplaneModeState();
350 }
351 
SetAppRunningState(ScanMode appRunMode)352 void WifiConfigCenter::SetAppRunningState(ScanMode appRunMode)
353 {
354     WifiSettings::GetInstance().SetAppRunningState(appRunMode);
355 }
356 
GetAppRunningState() const357 ScanMode WifiConfigCenter::GetAppRunningState() const
358 {
359     return WifiSettings::GetInstance().GetAppRunningState();
360 }
361 
SetPowerSavingModeState(const int & state)362 void WifiConfigCenter::SetPowerSavingModeState(const int &state)
363 {
364     WifiSettings::GetInstance().SetPowerSavingModeState(state);
365 }
366 
GetPowerSavingModeState() const367 int WifiConfigCenter::GetPowerSavingModeState() const
368 {
369     return WifiSettings::GetInstance().GetPowerSavingModeState();
370 }
371 
SetAppPackageName(const std::string & appPackageName)372 void WifiConfigCenter::SetAppPackageName(const std::string &appPackageName)
373 {
374     WifiSettings::GetInstance().SetAppPackageName(appPackageName);
375 }
376 
GetAppPackageName() const377 const std::string WifiConfigCenter::GetAppPackageName() const
378 {
379     return WifiSettings::GetInstance().GetAppPackageName();
380 }
381 
SetFreezeModeState(int state)382 void WifiConfigCenter::SetFreezeModeState(int state)
383 {
384     WifiSettings::GetInstance().SetFreezeModeState(state);
385 }
386 
GetFreezeModeState() const387 int WifiConfigCenter::GetFreezeModeState() const
388 {
389     return WifiSettings::GetInstance().GetFreezeModeState();
390 }
391 
SetNoChargerPlugModeState(int state)392 void WifiConfigCenter::SetNoChargerPlugModeState(int state)
393 {
394     WifiSettings::GetInstance().SetNoChargerPlugModeState(state);
395 }
396 
GetNoChargerPlugModeState() const397 int WifiConfigCenter::GetNoChargerPlugModeState() const
398 {
399     return WifiSettings::GetInstance().GetNoChargerPlugModeState();
400 }
401 
SetP2pDeviceName(const std::string & deviceName)402 int WifiConfigCenter::SetP2pDeviceName(const std::string &deviceName)
403 {
404     return WifiSettings::GetInstance().SetP2pDeviceName(deviceName);
405 }
406 
GetDisconnectedReason(DisconnectedReason & discReason)407 int WifiConfigCenter::GetDisconnectedReason(DisconnectedReason &discReason)
408 {
409     return WifiSettings::GetInstance().GetDisconnectedReason(discReason);
410 }
411 
GetWifiScanOnlyMidState()412 WifiOprMidState WifiConfigCenter::GetWifiScanOnlyMidState()
413 {
414     return mStaScanOnlyMidState.load();
415 }
416 
SetWifiScanOnlyMidState(WifiOprMidState expState,WifiOprMidState state)417 bool WifiConfigCenter::SetWifiScanOnlyMidState(WifiOprMidState expState, WifiOprMidState state)
418 {
419     return mStaScanOnlyMidState.compare_exchange_strong(expState, state);
420 }
SetWifiScanOnlyMidState(WifiOprMidState state)421 void WifiConfigCenter::SetWifiScanOnlyMidState(WifiOprMidState state)
422 {
423     mStaScanOnlyMidState = state;
424 }
GetStaApExclusionType()425 int WifiConfigCenter::GetStaApExclusionType()
426 {
427     return WifiSettings::GetInstance().GetStaApExclusionType();
428 }
429 
SetStaApExclusionType(int type)430 int WifiConfigCenter::SetStaApExclusionType(int type)
431 {
432     return WifiSettings::GetInstance().SetStaApExclusionType(type);
433 }
434 }  // namespace Wifi
435 }  // namespace OHOS
436