remove Doxygen warning
[platform/framework/native/net.git] / inc / FNetWifiWifiBssInfo.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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  * @file    FNetWifiWifiBssInfo.h
19  * @brief   This is the header file for the %WifiBssInfo class.
20  *
21  * This header file contains the declarations of the %WifiBssInfo class.
22  */
23 #ifndef _FNET_WIFI_WIFI_BSS_INFO_H_
24 #define _FNET_WIFI_WIFI_BSS_INFO_H_
25
26 #include <FBaseObject.h>
27 #include <FNetNetTypes.h>
28 #include <FNetWifiWifiTypes.h>
29
30 namespace Tizen { namespace Net
31 {
32 class IpAddress;
33 } }
34
35 namespace Tizen { namespace Net { namespace Wifi
36 {
37 class WifiSecurityInfo;
38 class _WifiBssInfoImpl;
39
40 /**
41  * @class   WifiBssInfo
42  * @brief   This class provides methods for managing the BSS information of a Wi-Fi network.
43  *
44  * @since   2.0
45  *
46  * The %WifiBssInfo class provides methods for managing the BSS information of a Wi-Fi network.
47  *
48  * For more information on the class features,
49  * see <a href="../org.tizen.native.appprogramming/html/guide/net/wi-fi_connectivity.htm">Wi-Fi Connectivity</a>.
50  */
51
52 class _OSP_EXPORT_ WifiBssInfo
53         : public Tizen::Base::Object
54 {
55 public:
56         /**
57          * This is the default constructor for this class.
58          *
59          * @since   2.0
60          */
61         WifiBssInfo(void);
62
63         /**
64          * Copying of objects using this copy constructor is allowed.
65          * @since   2.0
66          *
67          * @param[in]   value               An instance of %WifiBssInfo
68          */
69         WifiBssInfo(const WifiBssInfo& value);
70
71         /**
72          * This destructor overrides Tizen::Base::Object::~Object().
73          *
74          * @since       2.0
75          */
76         virtual ~WifiBssInfo(void);
77
78         /**
79          * Gets the SSID of this BSS.
80          *
81          * @since   2.0
82          *
83          * @return  The SSID
84          */
85         Tizen::Base::String GetSsid(void) const;
86
87         /**
88          * Gets the ID of this BSS.
89          *
90          * @since   2.0
91          *
92          * @return      The BSSID expressed as a 6 byte hexadecimal value delimited by dashes. @n
93          *              For example, "00-3D-47-EF-8A-03".
94          */
95         Tizen::Base::String GetBssId(void) const;
96
97         /**
98          * Gets the type of this BSS.
99          *
100          * @since   2.0
101          *
102          * @return      The type of this BSS
103          */
104         WifiBssType GetBssType(void) const;
105
106         /**
107          * Gets the radio channel of this BSS.
108          *
109          * @since   2.0
110          *
111          * @return      The radio channel of this BSS
112          */
113         WifiRadioChannel GetRadioChannel(void) const;
114
115         /**
116          * Gets the security information of this BSS.
117          *
118          * @since   2.0
119          *
120          * @return      The authentication and encryption type of this BSS
121          */
122         const WifiSecurityInfo* GetSecurityInfo(void) const;
123
124         /**
125          * Gets the Received Signal Strength Indication (RSSI) value of the BSS at the time of scanning.
126          *
127          * @since   2.0
128          *
129          * @return      The RSSI value in dBm
130          */
131         long GetRssi(void) const;
132
133         /**
134          * Gets the data rate of this BSS.
135          *
136          * @since       2.0
137          *
138          * @return      The data rate value (Mbps), @n
139          *              else @c -1.0 if the supported data rate is unknown
140          */
141         float GetDataRate(void) const;
142
143         /**
144          * Sets the SSID.
145          *
146          * @since 2.0
147          *
148          * @param[in] ssid The SSID
149          */
150         void SetSsid(const Tizen::Base::String& ssid);
151
152         /**
153          * Checks whether an access point (BSS) is known or not. @n
154          * The access point becomes a known BSS if it has been connected with this device.
155          *
156          * @since 2.0
157          *
158          * @return      @c true if the access point is known, @n
159          *              else @c false
160          * @see         SetUnknown()
161          */
162         bool IsKnown(void) const;
163
164         /**
165          * Sets the access point (BSS) unknown.
166          *
167          * @since 2.0
168          *
169          * @see         IsKnown()
170          */
171         void SetUnknown(void);
172
173         /**
174          * Gets the local IP address scheme.
175          *
176          * @since 2.0
177          *
178          * @return      The address scheme for the local IP address
179          */
180         Tizen::Net::NetAddressScheme GetLocalAddressScheme(void) const;
181
182         /**
183          * Sets the local IP address scheme. @n
184          * The %SetLocalAddressScheme() method allows determining whether to use static address or dynamic address.
185          *
186          * @since 2.0
187          *
188          * @param[in]   scheme              The address scheme for the local IP address
189          */
190         void SetLocalAddressScheme(Tizen::Net::NetAddressScheme scheme);
191
192         /**
193          * Gets the local IP address in the static address scheme.
194          *
195          * @since 2.0
196          *
197          * @return      The local address configured to this access point, @n
198          *              else @c null if an error occurs or there is no previously set address
199          * @exception   E_SUCCESS           The method is successful.
200          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
201          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
202          * @remarks     The specific error code can be accessed using the GetLastResult() method.
203          * @see         SetLocalAddress()
204          */
205         const Tizen::Net::IpAddress* GetLocalAddress(void) const;
206
207         /**
208          * Sets the local IP address in the static address scheme.
209          *
210          * @since 2.0
211          *
212          * @return      An error code
213          * @param[in]   pAddress            The new address to assign
214          * @exception   E_SUCCESS           The method is successful.
215          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
216          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
217          * @remarks     The existing local address is unset when the input argument is @c null.
218          * @see         GetLocalAddress()
219          */
220         result SetLocalAddress(const Tizen::Net::IpAddress* pAddress);
221
222         /**
223          * Gets the subnet mask address in the static address scheme.
224          *
225          * @since 2.0
226          *
227          * @return      The subnet mask address configured to this access point, @n
228          *              else @c null if an error occurs or there is no previously set address
229          * @exception   E_SUCCESS           The method is successful.
230          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
231          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
232          * @remarks     The specific error code can be accessed using the GetLastResult() method.
233          * @see         SetSubnetMaskAddress()
234          */
235         const Tizen::Net::IpAddress* GetSubnetMaskAddress(void) const;
236
237         /**
238          * Sets the subnet mask address in the static address scheme.
239          *
240          * @since 2.0
241          *
242          * @return      An error code
243          * @param[in]   pAddress            The new address to assign
244          * @exception   E_SUCCESS           The method is successful.
245          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
246          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
247          * @remarks     The existing subnet mask address is unset when the input argument is @c null.
248          * @see         GetSubnetMaskAddress()
249          */
250         result SetSubnetMaskAddress(const Tizen::Net::IpAddress* pAddress);
251
252         /**
253          * Gets the default gateway address in the static address scheme.
254          *
255          * @since 2.0
256          *
257          * @return      The default gateway address configured to this access point, @n
258          *              else @c null if an error occurs or there is no previously set address
259          * @exception   E_SUCCESS           The method is successful.
260          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
261          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
262          * @remarks     The specific error code can be accessed using the GetLastResult() method.
263          * @see         SetDefaultGatewayAddress()
264          */
265         const Tizen::Net::IpAddress* GetDefaultGatewayAddress(void) const;
266
267         /**
268          * Sets the default gateway address in the static address scheme.
269          *
270          * @since 2.0
271          *
272          * @return      An error code
273          * @param[in]   pAddress            The new address to assign
274          * @exception   E_SUCCESS           The method is successful.
275          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
276          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
277          * @remarks     The existing gateway address is unset when the input argument is @c null.
278          * @see         GetDefaultGatewayAddress()
279          */
280         result SetDefaultGatewayAddress(const Tizen::Net::IpAddress* pAddress);
281
282         /**
283          * Gets the primary DNS address in the static address scheme.
284          *
285          * @since 2.0
286          *
287          * @return      The primary DNS address configured to this access point, @n
288          *              else @c null if an error occurs or there is no previously set address
289          * @exception   E_SUCCESS           The method is successful.
290          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
291          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
292          * @remarks     The specific error code can be accessed using the GetLastResult() method.
293          * @see         SetPrimaryDnsAddress()
294          */
295         const Tizen::Net::IpAddress* GetPrimaryDnsAddress(void) const;
296
297         /**
298          * Sets the primary DNS address in the static address scheme.
299          *
300          * @since 2.0
301          *
302          * @return      An error code
303          * @param[in]   pAddress            The new address to assign
304          * @exception   E_SUCCESS           The method is successful.
305          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
306          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
307          * @remarks     The existing primary DNS address is unset when the input argument is @c null.
308          * @see         GetPrimaryDnsAddress()
309          */
310         result SetPrimaryDnsAddress(const Tizen::Net::IpAddress* pAddress);
311
312         /**
313          * Gets the secondary DNS address in the static address scheme.
314          *
315          * @since 2.0
316          *
317          * @return      The secondary DNS address configured to this access point, @n
318          *              else @c null if an error occurs or there is no previously set address
319          * @exception   E_SUCCESS           The method is successful.
320          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
321          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
322          * @remarks     The specific error code can be accessed using the GetLastResult() method.
323          * @see         SetSecondaryDnsAddress()
324          */
325         const Tizen::Net::IpAddress* GetSecondaryDnsAddress(void) const;
326
327         /**
328          * Sets the secondary DNS address in the static address scheme.
329          *
330          * @since 2.0
331          *
332          * @return      An error code
333          * @param[in]   pAddress            The new address to assign
334          * @exception   E_SUCCESS           The method is successful.
335          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
336          *                                  For example, the address scheme for the IP address is @c NET_ADDRESS_SCHEME_DYNAMIC.
337          * @remarks     The existing secondary DNS address is unset when the input argument is @c null.
338          * @see         GetSecondaryDnsAddress()
339          */
340         result SetSecondaryDnsAddress(const Tizen::Net::IpAddress* pAddress);
341
342         /**
343          * Gets the proxy type.
344          *
345          * @since 2.0
346          *
347          * @return      The proxy type
348          * @see         SetProxyType()
349          */
350         Tizen::Net::NetProxyType GetProxyType(void) const;
351
352         /**
353          * Sets the proxy type.
354          *
355          * @since 2.0
356          *
357          * @param[in]   type                The proxy type
358          * @see         GetProxyType()
359          */
360         void SetProxyType(Tizen::Net::NetProxyType type);
361
362         /**
363          * Gets the proxy address.
364          *
365          * @since 2.0
366          *
367          * @return      The proxy address, @n
368          *              else an empty string if an error occurs or there is no previously set address
369          * @exception   E_SUCCESS           The method is successful.
370          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation. @n
371          *                                  For example, the specified input type is @c NET_PROXY_TYPE_NONE.
372          * @remarks     The specific error code can be accessed using the GetLastResult() method.
373          * @see         SetProxyAddress()
374          */
375         Tizen::Base::String GetProxyAddress(void) const;
376
377         /**
378          * Sets the proxy address.
379          *
380          * @since 2.0
381          *
382          * @return      An error code
383          * @param[in]   address             The proxy address containing the IP address and port. @n
384          *                                  For example, 'proxy.example.com:3125' or '192.168.0.1:8080'.
385          * @exception   E_INVALID_OPERATION The current state of the instance prohibits the execution of this operation.
386          *                                  For example, the specified input type is @c NET_PROXY_TYPE_NONE.
387          * @remarks     The existing proxy address is unset when the input argument is an empty string.
388          * @see         GetProxyAddress()
389          */
390         result SetProxyAddress(const Tizen::Base::String& address);
391
392         /**
393          * Checks whether the specified instance of %WifiBssInfo equals the current instance.
394          *
395          * @since   2.0
396          *
397          * @return       @c true if the specified instance equals the current instance, @n
398          *               else @c false
399          * @param[in]    obj An instance of %WifiBssInfo
400          * @remarks      The method returns @c false if the specified object is not %WifiBssInfo.
401          */
402         virtual bool Equals(const Tizen::Base::Object& obj) const;
403
404         /**
405          * Gets the hash value of the current instance.
406          *
407          * @since   2.0
408          *
409          * @return      The hash value of the current instance
410          */
411         virtual int GetHashCode(void) const;
412
413         /**
414          * Assigns the value of the specified instance to the current instance of %WifiBssInfo.
415          *
416          * @since   2.0
417          *
418          * @return      The reference of this instance
419          * @param[in]   rhs                 An instance of %WifiBssInfo
420          */
421         WifiBssInfo& operator=(const WifiBssInfo& rhs);
422
423 private:
424         _WifiBssInfoImpl *__pWifiBssInfoImpl;
425
426         friend class _WifiBssInfoImpl;
427 }; // WifiBssInfo
428
429 } } } //Tizen::Net::Wifi
430 #endif // _FNET_WIFI_WIFI_BSS_INFO_H_