Skip to content

Commit 129081a

Browse files
[nrfconnect] Fix WiFiManager singleton implementation (#34148)
* Fixed the usage of WiFiManager::Instance() * Fixed the WiFiManager's singleton by making c'tor and d'tor private Signed-off-by: Marcin Kajor <marcin.kajor@nordicsemi.no>
1 parent a8fe0cf commit 129081a

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/platform/nrfconnect/wifi/ConnectivityManagerImplWiFi.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ ConnectivityManager::WiFiStationMode ConnectivityManagerImplWiFi::_GetWiFiStatio
4242
{
4343
if (mStationMode != ConnectivityManager::WiFiStationMode::kWiFiStationMode_ApplicationControlled)
4444
{
45-
mStationMode = (WiFiManager::StationStatus::DISABLED == WiFiManager().Instance().GetStationStatus())
45+
mStationMode = (WiFiManager::StationStatus::DISABLED == WiFiManager::Instance().GetStationStatus())
4646
? ConnectivityManager::WiFiStationMode::kWiFiStationMode_Disabled
4747
: ConnectivityManager::WiFiStationMode::kWiFiStationMode_Enabled;
4848
}
@@ -60,7 +60,7 @@ CHIP_ERROR ConnectivityManagerImplWiFi::_SetWiFiStationMode(ConnectivityManager:
6060

6161
bool ConnectivityManagerImplWiFi::_IsWiFiStationEnabled(void)
6262
{
63-
return (WiFiManager::StationStatus::DISABLED <= WiFiManager().Instance().GetStationStatus());
63+
return (WiFiManager::StationStatus::DISABLED <= WiFiManager::Instance().GetStationStatus());
6464
}
6565

6666
bool ConnectivityManagerImplWiFi::_IsWiFiStationApplicationControlled(void)
@@ -70,7 +70,7 @@ bool ConnectivityManagerImplWiFi::_IsWiFiStationApplicationControlled(void)
7070

7171
bool ConnectivityManagerImplWiFi::_IsWiFiStationConnected(void)
7272
{
73-
return (WiFiManager::StationStatus::CONNECTED == WiFiManager().Instance().GetStationStatus());
73+
return (WiFiManager::StationStatus::CONNECTED == WiFiManager::Instance().GetStationStatus());
7474
}
7575

7676
System::Clock::Timeout ConnectivityManagerImplWiFi::_GetWiFiStationReconnectInterval(void)
@@ -88,14 +88,14 @@ bool ConnectivityManagerImplWiFi::_IsWiFiStationProvisioned(void)
8888
{
8989
// from Matter perspective `provisioned` means that the supplicant has been provided
9090
// with SSID and password (doesn't matter if valid or not)
91-
return (WiFiManager::StationStatus::CONNECTING <= WiFiManager().Instance().GetStationStatus());
91+
return (WiFiManager::StationStatus::CONNECTING <= WiFiManager::Instance().GetStationStatus());
9292
}
9393

9494
void ConnectivityManagerImplWiFi::_ClearWiFiStationProvision(void)
9595
{
9696
if (_IsWiFiStationProvisioned())
9797
{
98-
if (CHIP_NO_ERROR != WiFiManager().Instance().ClearStationProvisioningData())
98+
if (CHIP_NO_ERROR != WiFiManager::Instance().ClearStationProvisioningData())
9999
{
100100
ChipLogError(DeviceLayer, "Cannot clear WiFi station provisioning data");
101101
}
@@ -104,9 +104,9 @@ void ConnectivityManagerImplWiFi::_ClearWiFiStationProvision(void)
104104

105105
bool ConnectivityManagerImplWiFi::_CanStartWiFiScan()
106106
{
107-
return (WiFiManager::StationStatus::DISABLED != WiFiManager().Instance().GetStationStatus() &&
108-
WiFiManager::StationStatus::SCANNING != WiFiManager().Instance().GetStationStatus() &&
109-
WiFiManager::StationStatus::CONNECTING != WiFiManager().Instance().GetStationStatus());
107+
return (WiFiManager::StationStatus::DISABLED != WiFiManager::Instance().GetStationStatus() &&
108+
WiFiManager::StationStatus::SCANNING != WiFiManager::Instance().GetStationStatus() &&
109+
WiFiManager::StationStatus::CONNECTING != WiFiManager::Instance().GetStationStatus());
110110
}
111111

112112
void ConnectivityManagerImplWiFi::_OnWiFiStationProvisionChange()

src/platform/nrfconnect/wifi/WiFiManager.h

+9
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ class Map
8888
class WiFiManager
8989
{
9090
public:
91+
/* No copy, nor move. */
92+
WiFiManager(const WiFiManager &) = delete;
93+
WiFiManager & operator=(const WiFiManager &) = delete;
94+
WiFiManager(WiFiManager &&) = delete;
95+
WiFiManager & operator=(WiFiManager &&) = delete;
96+
9197
using ScanDoneStatus = decltype(wifi_status::status);
9298
using ScanResultCallback = void (*)(const NetworkCommissioning::WiFiScanResponse &);
9399
using ScanDoneCallback = void (*)(const ScanDoneStatus &);
@@ -185,6 +191,9 @@ class WiFiManager
185191
private:
186192
using NetEventHandler = void (*)(Platform::UniquePtr<uint8_t>, size_t);
187193

194+
WiFiManager() = default;
195+
~WiFiManager() = default;
196+
188197
struct ConnectionParams
189198
{
190199
wifi_connect_req_params mParams;

0 commit comments

Comments
 (0)