X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FTizen.Network.WiFi%2FTizen.Network.WiFi%2FWiFiNetwork.cs;h=d77be57cd7194e5103d5c7f999737b8e761229e2;hb=bf0dc32c2ce4f0169fae2157907a81cb253c5a71;hp=7e94e37091f5177b4255c6d1010439695723af47;hpb=ebf03201470f9113da43f593b11b3ccbb1b4fec5;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git diff --git a/src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs b/src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs index 7e94e37..d77be57 100755 --- a/src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs +++ b/src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs @@ -23,20 +23,21 @@ using Tizen.Network.Connection; namespace Tizen.Network.WiFi { /// - /// A class for managing the Wi-Fi information. It allows applications to manager network information. - /// This class is not intended to create instance directly from applications. + /// A class for managing the Wi-Fi network information. /// - public class WiFiNetwork : IDisposable + /// 3 + public class WiFiNetwork { - private IntPtr _apHandle = IntPtr.Zero; + private Interop.WiFi.SafeWiFiAPHandle _apHandle; private IAddressInformation _ipv4; private IAddressInformation _ipv6; - private bool disposed = false; private string _essid; /// - /// The Extended Service Set Identifier(ESSID). + /// The Extended Service Set Identifier (ESSID). /// + /// 3 + /// ESSID of the Wi-Fi. public string Essid { get @@ -44,7 +45,7 @@ namespace Tizen.Network.WiFi if (string.IsNullOrEmpty(_essid)) { IntPtr strPtr; - int ret = Interop.WiFi.Ap.GetEssid(_apHandle, out strPtr); + int ret = Interop.WiFi.AP.GetEssid(_apHandle, out strPtr); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get essid, Error - " + (WiFiError)ret); @@ -58,15 +59,18 @@ namespace Tizen.Network.WiFi return _essid; } } + /// - /// The Basic Service Set Identifier(BSSID). + /// The Basic Service Set Identifier (BSSID). /// + /// 3 + /// BSSID of the Wi-Fi. public string Bssid { get { IntPtr strPtr; - int ret = Interop.WiFi.Ap.GetBssid(_apHandle, out strPtr); + int ret = Interop.WiFi.AP.GetBssid(_apHandle, out strPtr); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get bssid, Error - " + (WiFiError)ret); @@ -75,35 +79,47 @@ namespace Tizen.Network.WiFi return Marshal.PtrToStringAnsi(strPtr); } } + /// - /// The address informaiton for Ipv4. + /// The address information for IPv4. /// - public IAddressInformation Ipv4Setting + /// 3 + /// IP address information for IPv4 type. + public IAddressInformation IPv4Setting { get { return _ipv4; } } + /// - /// The address ainformation for Ipv6. + /// The address information for IPv6. /// - public IAddressInformation Ipv6Setting + /// 3 + /// IP address information for IPv6 type. + public IAddressInformation IPv6Setting { get { return _ipv6; } } + /// /// The proxy address. /// + /// 3 + /// Represents the proxy address of the Wi-Fi. + /// Thrown while setting this property when Wi-Fi is not supported. + /// Thrown while setting this property due to an invalid parameter. + /// Thrown while setting this value due to an invalid operation. public string ProxyAddress { get { IntPtr strPtr; - int ret = Interop.WiFi.Ap.GetProxyAddress(_apHandle, (int)AddressFamily.Ipv4, out strPtr); + int ret = Interop.WiFi.AP.GetProxyAddress(_apHandle, (int)AddressFamily.IPv4, out strPtr); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get proxy address, Error - " + (WiFiError)ret); @@ -113,22 +129,29 @@ namespace Tizen.Network.WiFi } set { - int ret = Interop.WiFi.Ap.SetProxyAddress(_apHandle, (int)AddressFamily.Ipv4, value); + int ret = Interop.WiFi.AP.SetProxyAddress(_apHandle, (int)AddressFamily.IPv4, value); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to set proxy address, Error - " + (WiFiError)ret); + WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle()); } } } + /// - /// The proxy type(Ipv6). + /// The proxy type (IPv6). /// + /// 3 + /// Represents the proxy type of the Wi-Fi. + /// Thrown while setting this property when Wi-Fi is not supported. + /// Thrown while setting this property due to an invalid parameter. + /// Thrown while setting this value due to an invalid operation. public WiFiProxyType ProxyType { get { int type; - int ret = Interop.WiFi.Ap.GetProxyType(_apHandle, out type); + int ret = Interop.WiFi.AP.GetProxyType(_apHandle, out type); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get proxy type, Error - " + (WiFiError)ret); @@ -137,22 +160,26 @@ namespace Tizen.Network.WiFi } set { - int ret = Interop.WiFi.Ap.SetProxyType(_apHandle, (int)value); + int ret = Interop.WiFi.AP.SetProxyType(_apHandle, (int)value); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to set proxy type, Error - " + (WiFiError)ret); + WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle()); } } } + /// - /// The frequency band(MHz). + /// The frequency band (MHz). /// + /// 3 + /// Represents the frequency band value. public int Frequency { get { int freq; - int ret = Interop.WiFi.Ap.GetFrequency(_apHandle, out freq); + int ret = Interop.WiFi.AP.GetFrequency(_apHandle, out freq); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get frequency, Error - " + (WiFiError)ret); @@ -160,15 +187,18 @@ namespace Tizen.Network.WiFi return freq; } } + /// - /// The Received signal strength indication(RSSI). + /// The received signal strength indicator (RSSI). /// + /// 3 + /// Represents RSSI of Wi-Fi (dbm). public int Rssi { get { int rssi; - int ret = Interop.WiFi.Ap.GetRssi(_apHandle, out rssi); + int ret = Interop.WiFi.AP.GetRssi(_apHandle, out rssi); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get rssi, Error - " + (WiFiError)ret); @@ -176,15 +206,39 @@ namespace Tizen.Network.WiFi return rssi; } } + /// - /// Rhe max speed (Mbps). + /// The Received signal strength indication(RSSI). /// + /// 4 + /// Represents Rssi level of WiFi. + /// http://tizen.org/feature/network.wifi + /// Thrown while setting this property when WiFi is not supported. + public WiFiRssiLevel RssiLevel + { + get + { + int rssi; + int ret = Interop.WiFi.AP.GetRssiLevel(_apHandle, out rssi); + if (ret != (int)WiFiError.None) + { + Log.Error(Globals.LogTag, "Failed to get rssi level, Error - " + (WiFiError)ret); + } + return (WiFiRssiLevel)rssi; + } + } + + /// + /// The max speed (Mbps). + /// + /// 3 + /// Represents the max speed value. public int MaxSpeed { get { int maxSpeed; - int ret = Interop.WiFi.Ap.GetMaxSpeed(_apHandle, out maxSpeed); + int ret = Interop.WiFi.AP.GetMaxSpeed(_apHandle, out maxSpeed); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get max speed, Error - " + (WiFiError)ret); @@ -192,15 +246,18 @@ namespace Tizen.Network.WiFi return maxSpeed; } } + /// - /// A property to check whether the access point is favorite or not. + /// A property to check whether the access point is a favorite or not. /// + /// 3 + /// Boolean value to check if the access point is a favorite or not. public bool IsFavorite { get { bool isFavorite; - int ret = Interop.WiFi.Ap.IsFavorite(_apHandle, out isFavorite); + int ret = Interop.WiFi.AP.IsFavorite(_apHandle, out isFavorite); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get favorite, Error - " + (WiFiError)ret); @@ -208,16 +265,19 @@ namespace Tizen.Network.WiFi return isFavorite; } } + /// - /// A property to check whether the access point is passpoint or not. + /// A property to check whether the access point is a passpoint or not. /// + /// 3 + /// Boolean value to check if the access point is a passpoint or not. public bool IsPasspoint { get { bool isPasspoint; Log.Debug(Globals.LogTag, "Handle: " + _apHandle); - int ret = Interop.WiFi.Ap.IsPasspoint(_apHandle, out isPasspoint); + int ret = Interop.WiFi.AP.IsPasspoint(_apHandle, out isPasspoint); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get isPassport, Error - " + (WiFiError)ret); @@ -225,15 +285,18 @@ namespace Tizen.Network.WiFi return isPasspoint; } } + /// /// The connection state. /// + /// 3 + /// Represents the connection state of the Wi-Fi. public WiFiConnectionState ConnectionState { get { int state; - int ret = Interop.WiFi.Ap.GetConnectionState(_apHandle, out state); + int ret = Interop.WiFi.AP.GetConnectionState(_apHandle, out state); if (ret != (int)WiFiError.None) { Log.Error(Globals.LogTag, "Failed to get connection state, Error - " + (WiFiError)ret); @@ -242,45 +305,56 @@ namespace Tizen.Network.WiFi } } - internal WiFiNetwork(IntPtr apHandle) + /// + /// Gets all IPv6 addresses of the access point. + /// + /// 3 + /// A list of IPv6 addresses of the access point. + /// http://tizen.org/feature/network.wifi + /// Thrown when the Wi-Fi is not supported. + /// Thrown when the method failed due to an invalid parameter. + /// Thrown when the method failed due to an invalid operation. + public IEnumerable GetAllIPv6Addresses() { - _apHandle = apHandle; - _ipv4 = new WiFiAddressInformation(apHandle, AddressFamily.Ipv4); - _ipv6 = new WiFiAddressInformation(apHandle, AddressFamily.Ipv6); + Log.Debug(Globals.LogTag, "GetAllIPv6Addresses"); + List ipList = new List(); + Interop.WiFi.HandleCallback callback = (IntPtr ipv6Address, IntPtr userData) => + { + if (ipv6Address != IntPtr.Zero) + { + string ipv6 = Marshal.PtrToStringAnsi(ipv6Address); + if (ipv6.Length == 0) + ipList.Add(System.Net.IPAddress.Parse("::")); + else + ipList.Add(System.Net.IPAddress.Parse(ipv6)); + return true; + } + return false; + }; - IntPtr strPtr; - int ret = Interop.WiFi.Ap.GetEssid(_apHandle, out strPtr); + int ret = Interop.WiFi.AP.GetAllIPv6Addresses(_apHandle, callback, IntPtr.Zero); if (ret != (int)WiFiError.None) { - Log.Error(Globals.LogTag, "Failed to get essid, Error - " + (WiFiError)ret); + Log.Error(Globals.LogTag, "Failed to get all IPv6 addresses, Error - " + (WiFiError)ret); + WiFiErrorFactory.ThrowWiFiException(ret, _apHandle.DangerousGetHandle()); } - _essid = Marshal.PtrToStringAnsi(strPtr); - } - - ~WiFiNetwork() - { - Dispose(false); - } - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); + return ipList; } - private void Dispose(bool disposing) + internal WiFiNetwork(Interop.WiFi.SafeWiFiAPHandle apHandle) { - if (disposed) - return; + _apHandle = apHandle; + _ipv4 = new WiFiAddressInformation(apHandle, AddressFamily.IPv4); + _ipv6 = new WiFiAddressInformation(apHandle, AddressFamily.IPv6); - if (disposing) + IntPtr strPtr; + int ret = Interop.WiFi.AP.GetEssid(_apHandle, out strPtr); + if (ret != (int)WiFiError.None) { - _ipv4.Dispose(); - _ipv6.Dispose(); + Log.Error(Globals.LogTag, "Failed to get essid, Error - " + (WiFiError)ret); } - _apHandle = IntPtr.Zero; - disposed = true; + _essid = Marshal.PtrToStringAnsi(strPtr); } - } //WiFiNetworkInformation }