2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 * @file FNetWifi_WifiManagerImpl.h
19 * @brief This is the header file for the _WifiManagerImpl Class.
22 * This header file contains declaration of the _WifiManagerImpl Class.
25 #ifndef _FNET_WIFI_INTERNAL_WIFI_MANAGER_IMPL_H_
26 #define _FNET_WIFI_INTERNAL_WIFI_MANAGER_IMPL_H_
28 #include <FOspConfig.h>
29 #include <FBaseObject.h>
30 #include <FNetWifiWifiTypes.h>
31 #include "FNetWifi_IWifiManagerEventListener.h"
33 namespace Tizen { namespace Net { namespace Wifi
38 class IWifiManagerEventListener;
39 class IWifiSystemMonitoringEventListener;
40 class _WifiSystemAdapter;
41 class _WifiManagerEvent;
42 class _WifiSystemMonitoringEvent;
45 * @class _WifiManagerImpl
46 * @brief This class provides methods for the local Wi-Fi device management.
49 * _WifiManagerImpl class provides the functionality for creating a _WifiManagerImpl instance, and
50 * managing local Wifi devices. It also allows the listener to get events from local Wifi devices.
52 class _OSP_EXPORT_ _WifiManagerImpl
53 : public Tizen::Base::Object
54 , public _IWifiManagerEventListener
59 * This is the default constructor for this class.
61 * @remarks After creating an instance of this class, you must explicitly call
62 * the construction method to initialize the instance.
65 _WifiManagerImpl(void);
68 * This is the copy constructor for this class. Do @b not use directly.
70 * @param[in] value An instance of %_WifiManagerImpl
72 _WifiManagerImpl(const _WifiManagerImpl& value);
75 *This destructor overrides Tizen::Base::Object::~Object().
77 virtual ~_WifiManagerImpl(void);
80 * @see WifiManager::Construct()
82 result Construct(IWifiManagerEventListener& listener);
85 * @see WifiManager::Activate()
87 result Activate(void);
90 * @see WifiManager::Deactivate()
92 result Deactivate(void);
95 * @see WifiManager::GetPowerStatus()
97 WifiPowerStatus GetPowerStatus(void) const;
100 * @see WifiManager::GetMacAddress()
102 Tizen::Base::String GetMacAddress(void) const;
105 * @see WifiManager::IsActivated()
107 bool IsActivated(void) const;
110 * @see WifiManager::IsConnected()
112 bool IsConnected(void) const;
115 * @see WifiManager::Scan()
120 * @see WifiManager::Connect()
122 result Connect(const WifiBssInfo& targetApInfo);
125 * @see WifiManager::SetWifiSystemScanMode()
127 result SetWifiSystemScanMode(WifiSystemScanMode mode);
130 * @see WifiManager::AddSystemMonitoringEventListener()
132 result AddSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
135 * @see WifiManager::RemoveSystemMonitoringEventListener()
137 result RemoveSystemMonitoringEventListener(IWifiSystemMonitoringEventListener& listener);
140 * @see WifiManager::GetConnectionState()
142 WifiConnectionState GetConnectionState(void) const;
145 * @see WifiManager::GetConnectionTargetInfoN()
147 WifiBssInfo* GetConnectionTargetInfoN(void) const;
150 * @see WifiManager::UpdateBssInfo()
152 result UpdateBssInfo(const WifiBssInfo& bssInfo);
155 * @see WifiManager::GetSystemScanResultN()
157 Tizen::Base::Collection::IList* GetSystemScanResultN(void) const;
160 * @see IWifiManagerEventListener::OnWifiActivated()
162 virtual void OnWifiActivated(result r);
165 * @see IWifiManagerEventListener::OnWifiDeactivated()
167 virtual void OnWifiDeactivated(result r);
170 * @see IWifiManagerEventListener::OnWifiConnected()
172 virtual void OnWifiConnected(const Tizen::Base::String& ssid, result r);
175 * @see IWifiManagerEventListener::OnWifiDisconnected()
177 virtual void OnWifiDisconnected(void);
180 * @see IWifiManagerEventListener::OnWifiRssiChanged()
182 virtual void OnWifiRssiChanged(long rssi);
185 * @see IWifiManagerEventListener::OnWifiScanCompletedN()
187 virtual void OnWifiScanCompleted(Tizen::Base::Collection::IList* pWifiBssInfoList, result r);
190 * @see IWifiSystemMonitoringEventListener::OnWOnWifiConnectionStateChanged()
192 virtual void OnWifiConnectionStateChanged(WifiConnectionState state);
195 * @see IWifiSystemMonitoringEventListener::OnWifiSystemScanResultUpdated()
197 virtual void OnWifiSystemScanResultUpdated(void);
200 * Gets the Impl instance.
202 * @return The pointer to %_WifiManagerImpl
203 * @param[in] wifiManager An instance of %WifiManager
205 static _WifiManagerImpl* GetInstance(WifiManager& wifiManager);
208 * Gets the Impl instance.
210 * @return The pointer to %_WifiManagerImpl
211 * @param[in] wifiManager An instance of %WifiManager
213 static const _WifiManagerImpl* GetInstance(const WifiManager& wifiManager);
216 * @see WifiManager::operator=()
218 _WifiManagerImpl& operator=(const _WifiManagerImpl& rhs);
221 enum _WifiManagerState
223 WIFI_MANAGER_DEACTIVATED,
224 WIFI_MANAGER_ACTIVATING,
225 WIFI_MANAGER_DEACTIVATING,
226 WIFI_MANAGER_ACTIVATED,
227 WIFI_MANAGER_CONNECTING,
228 WIFI_MANAGER_CONNECTED,
229 WIFI_MANAGER_DISCONNECTING
239 * Return character string of current wifi status
241 const char* GetStringOfCurrentState(void) const;
244 * Return character string of current scan status
246 const char* GetStringOfCurrentScanState(void) const;
249 * Return character string of current connection state
251 const char* GetStringOfConnectionState(WifiConnectionState state) const;
254 _WifiSystemAdapter* __pWifiSystemAdapter;
255 std::unique_ptr<_WifiManagerEvent> __pMgrEvent;
256 std::unique_ptr<_WifiSystemMonitoringEvent> __pMonitoringEvent;
257 WifiBssInfo* __pTargetApInfo;
258 Tizen::Base::Runtime::Mutex __stateMutex;
259 _WifiManagerState __currentState;
260 _WifiScanState __currentScanState;
262 }; // _WifiManagerImpl
264 } } } // Tizen::Net::Wifi
266 #endif // _FNET_WIFI_INTERNAL_WIFI_MANAGER_IMPL_H_