Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2020 Project CHIP Authors
4 : *
5 : * Licensed under the Apache License, Version 2.0 (the "License");
6 : * you may not use this file except in compliance with the License.
7 : * You may obtain a copy of the License at
8 : *
9 : * http://www.apache.org/licenses/LICENSE-2.0
10 : *
11 : * Unless required by applicable law or agreed to in writing, software
12 : * distributed under the License is distributed on an "AS IS" BASIS,
13 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 : * See the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 :
18 : /**
19 : * @file
20 : * Provides an generic implementation of ConnectivityManager features
21 : * for use on platforms that support WiFi.
22 : */
23 :
24 : #ifndef GENERIC_CONNECTIVITY_MANAGER_IMPL_WIFI_CPP
25 : #define GENERIC_CONNECTIVITY_MANAGER_IMPL_WIFI_CPP
26 :
27 : #include <lib/support/CodeUtils.h>
28 : #include <platform/internal/CHIPDeviceLayerInternal.h>
29 : #include <platform/internal/GenericConnectivityManagerImpl_WiFi.h>
30 :
31 : namespace chip {
32 : namespace DeviceLayer {
33 : namespace Internal {
34 :
35 : template <class ImplClass>
36 0 : const char * GenericConnectivityManagerImpl_WiFi<ImplClass>::_WiFiStationModeToStr(ConnectivityManager::WiFiStationMode mode)
37 : {
38 0 : switch (mode)
39 : {
40 0 : case ConnectivityManager::kWiFiStationMode_NotSupported:
41 0 : return "NotSupported";
42 0 : case ConnectivityManager::kWiFiStationMode_ApplicationControlled:
43 0 : return "AppControlled";
44 0 : case ConnectivityManager::kWiFiStationMode_Enabled:
45 0 : return "Enabled";
46 0 : case ConnectivityManager::kWiFiStationMode_Disabled:
47 0 : return "Disabled";
48 0 : default:
49 0 : return "(unknown)";
50 : }
51 : }
52 :
53 : template <class ImplClass>
54 0 : const char * GenericConnectivityManagerImpl_WiFi<ImplClass>::_WiFiAPModeToStr(ConnectivityManager::WiFiAPMode mode)
55 : {
56 0 : switch (mode)
57 : {
58 0 : case ConnectivityManager::kWiFiAPMode_NotSupported:
59 0 : return "NotSupported";
60 0 : case ConnectivityManager::kWiFiAPMode_ApplicationControlled:
61 0 : return "AppControlled";
62 0 : case ConnectivityManager::kWiFiAPMode_Disabled:
63 0 : return "Disabled";
64 0 : case ConnectivityManager::kWiFiAPMode_Enabled:
65 0 : return "Enabled";
66 0 : case ConnectivityManager::kWiFiAPMode_OnDemand:
67 0 : return "OnDemand";
68 0 : case ConnectivityManager::kWiFiAPMode_OnDemand_NoStationProvision:
69 0 : return "OnDemand_NoStationProvision";
70 0 : default:
71 0 : return "(unknown)";
72 : }
73 : }
74 :
75 : template <class ImplClass>
76 0 : const char * GenericConnectivityManagerImpl_WiFi<ImplClass>::_WiFiStationStateToStr(ConnectivityManager::WiFiStationState state)
77 : {
78 0 : switch (state)
79 : {
80 0 : case ConnectivityManager::kWiFiStationState_NotConnected:
81 0 : return "NotConnected";
82 0 : case ConnectivityManager::kWiFiStationState_Connecting:
83 0 : return "Connecting";
84 0 : case ConnectivityManager::kWiFiStationState_Connecting_Succeeded:
85 0 : return "Connecting_Succeeded";
86 0 : case ConnectivityManager::kWiFiStationState_Connecting_Failed:
87 0 : return "Connecting_Failed";
88 0 : case ConnectivityManager::kWiFiStationState_Connected:
89 0 : return "Connected";
90 0 : case ConnectivityManager::kWiFiStationState_Disconnecting:
91 0 : return "Disconnecting";
92 0 : default:
93 0 : return "(unknown)";
94 : }
95 : }
96 :
97 : template <class ImplClass>
98 0 : const char * GenericConnectivityManagerImpl_WiFi<ImplClass>::_WiFiAPStateToStr(ConnectivityManager::WiFiAPState state)
99 : {
100 0 : switch (state)
101 : {
102 0 : case ConnectivityManager::kWiFiAPState_NotActive:
103 0 : return "NotActive";
104 0 : case ConnectivityManager::kWiFiAPState_Activating:
105 0 : return "Activating";
106 0 : case ConnectivityManager::kWiFiAPState_Active:
107 0 : return "Active";
108 0 : case ConnectivityManager::kWiFiAPState_Deactivating:
109 0 : return "Deactivating";
110 0 : default:
111 0 : return "(unknown)";
112 : }
113 : }
114 :
115 : template <class ImplClass>
116 0 : bool GenericConnectivityManagerImpl_WiFi<ImplClass>::_IsWiFiStationEnabled()
117 : {
118 0 : return Impl()->GetWiFiStationMode() == ConnectivityManager::kWiFiStationMode_Enabled;
119 : }
120 :
121 : template <class ImplClass>
122 0 : bool GenericConnectivityManagerImpl_WiFi<ImplClass>::_IsWiFiStationApplicationControlled()
123 : {
124 0 : return Impl()->GetWiFiStationMode() == ConnectivityManager::kWiFiStationMode_ApplicationControlled;
125 : }
126 :
127 : // Fully instantiate the generic implementation class in whatever compilation unit includes this file.
128 : // NB: This must come after all templated class members are defined.
129 : template class GenericConnectivityManagerImpl_WiFi<ConnectivityManagerImpl>;
130 :
131 : } // namespace Internal
132 : } // namespace DeviceLayer
133 : } // namespace chip
134 :
135 : #endif // GENERIC_CONNECTIVITY_MANAGER_IMPL_WIFI_CPP
|