[WiFi] Added wifi-manager changes and fix for multi-thread support.
authoradhavan.m <adhavan.m@samsung.com>
Wed, 8 Feb 2017 11:06:20 +0000 (16:36 +0530)
committeradhavan.m <adhavan.m@samsung.com>
Thu, 9 Feb 2017 06:54:30 +0000 (12:24 +0530)
Signed-off-by: adhavan.m <adhavan.m@samsung.com>
Change-Id: I6cade0774538422555f2f4f4a33ab8de89b30a05

packaging/csapi-network-wifi.spec [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Interop/Interop.Libraries.cs [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Interop/Interop.WiFi.cs [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Tizen.Network.WiFi.project.json [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiAp.cs [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiConfiguration.cs [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManager.cs
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiManagerImpl.cs
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetwork.cs [changed mode: 0644->0755]
src/Tizen.Network.WiFi/Tizen.Network.WiFi/WiFiNetworkChange.cs [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 4c94525..0f532f4
@@ -1,6 +1,6 @@
 Name:       csapi-network-wifi
 Summary:    Tizen Wi-Fi API for C#
-Version:    1.0.3
+Version:    1.0.4
 Release:    1
 Group:      Development/Libraries
 License:    Apache-2.0
old mode 100644 (file)
new mode 100755 (executable)
index 704b024..d966df6
@@ -18,7 +18,7 @@ internal static partial class Interop
 {
     internal static partial class Libraries
     {
-        public const string WiFi = "libcapi-network-wifi.so.1";
+        public const string WiFi = "libcapi-network-wifi-manager.so.1";
         public const string Glib = "libglib-2.0.so.0";
         public const string Libc = "libc.so.6";
     }
old mode 100644 (file)
new mode 100755 (executable)
index 52c1ffb..56a37cc
@@ -36,218 +36,218 @@ internal static partial class Interop
         internal delegate void RssiLevelChangedCallback(int level, IntPtr userData);
 
         //capi-network-wifi-1.0.65-19.23.armv7l
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_initialize")]
-        internal static extern int Initialize();
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_deinitialize")]
-        internal static extern int Deinitialize();
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_initialize")]
+        internal static extern int Initialize(out IntPtr wifi);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deinitialize")]
+        internal static extern int Deinitialize(IntPtr wifi);
 
         ////Wi-Fi Manager
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_activate")]
-        internal static extern int Activate(VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_activate_with_wifi_picker_tested")]
-        internal static extern int ActivateWithWiFiPickerTested(VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_deactivate")]
-        internal static extern int Deactivate(VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_is_activated")]
-        internal static extern int IsActivated(out bool activated);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_get_mac_address")]
-        internal static extern int GetMacAddress(out string macAddress);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_get_network_interface_name")]
-        internal static extern int GetNetworkInterfaceName(out string interfaceName);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_scan")]
-        internal static extern int Scan(VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_scan_specific_ap")]
-        internal static extern int ScanSpecificAp(string essid, VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_get_connected_ap")]
-        internal static extern int GetConnectedAp(out IntPtr ap);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_foreach_found_aps")]
-        internal static extern int GetForeachFoundAps(HandleCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_foreach_found_specific_aps")]
-        internal static extern int GetForeachFoundSpecificAps(HandleCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_connect")]
-        internal static extern int Connect(IntPtr ap, VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_disconnect")]
-        internal static extern int Disconnect(IntPtr ap, VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_connect_by_wps_pbc")]
-        internal static extern int ConnectByWpsPbc(IntPtr ap, VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_connect_by_wps_pin")]
-        internal static extern int ConnectByWpsPin(IntPtr ap, string pin, VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_forget_ap")]
-        internal static extern int RemoveAp(IntPtr ap);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate")]
+        internal static extern int Activate(IntPtr wifi, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_activate_with_wifi_picker_tested")]
+        internal static extern int ActivateWithWiFiPickerTested(IntPtr wifi, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_deactivate")]
+        internal static extern int Deactivate(IntPtr wifi, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_is_activated")]
+        internal static extern int IsActivated(IntPtr wifi, out bool activated);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_mac_address")]
+        internal static extern int GetMacAddress(IntPtr wifi, out string macAddress);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_network_interface_name")]
+        internal static extern int GetNetworkInterfaceName(IntPtr wifi, out string interfaceName);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan")]
+        internal static extern int Scan(IntPtr wifi, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_scan_specific_ap")]
+        internal static extern int ScanSpecificAp(IntPtr wifi, string essid, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connected_ap")]
+        internal static extern int GetConnectedAp(IntPtr wifi, out IntPtr ap);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_ap")]
+        internal static extern int GetForeachFoundAps(IntPtr wifi, HandleCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_foreach_found_specific_ap")]
+        internal static extern int GetForeachFoundSpecificAps(IntPtr wifi, HandleCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect")]
+        internal static extern int Connect(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_disconnect")]
+        internal static extern int Disconnect(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pbc")]
+        internal static extern int ConnectByWpsPbc(IntPtr wifi, IntPtr ap, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_connect_by_wps_pin")]
+        internal static extern int ConnectByWpsPin(IntPtr wifi, IntPtr ap, string pin, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_forget_ap")]
+        internal static extern int RemoveAp(IntPtr wifi, IntPtr ap);
 
         //Wi-Fi Monitor
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_get_connection_state")]
-        internal static extern int GetConnectionState(out int connectionState);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_set_device_state_changed_cb")]
-        internal static extern int SetDeviceStateChangedCallback(DeviceStateChangedCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_unset_device_state_changed_cb")]
-        internal static extern int UnsetDeviceStateChangedCallback();
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_set_background_scan_cb")]
-        internal static extern int SetBackgroundScanCallback(VoidCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_unset_background_scan_cb")]
-        internal static extern int UnsetBackgroundScanCallback();
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_set_connection_state_changed_cb")]
-        internal static extern int SetConnectionStateChangedCallback(ConnectionStateChangedCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_unset_connection_state_changed_cb")]
-        internal static extern int UnsetConnectionStateChangedCallback();
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_set_rssi_level_changed_cb")]
-        internal static extern int SetRssiLevelchangedCallback(RssiLevelChangedCallback callback, IntPtr userData);
-        [DllImport(Libraries.WiFi, EntryPoint = "wifi_unset_rssi_level_changed_cb")]
-        internal static extern int UnsetRssiLevelchangedCallback();
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_get_connection_state")]
+        internal static extern int GetConnectionState(IntPtr wifi, out int connectionState);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_device_state_changed_cb")]
+        internal static extern int SetDeviceStateChangedCallback(IntPtr wifi, DeviceStateChangedCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_device_state_changed_cb")]
+        internal static extern int UnsetDeviceStateChangedCallback(IntPtr wifi);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_background_scan_cb")]
+        internal static extern int SetBackgroundScanCallback(IntPtr wifi, VoidCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_background_scan_cb")]
+        internal static extern int UnsetBackgroundScanCallback(IntPtr wifi);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_connection_state_changed_cb")]
+        internal static extern int SetConnectionStateChangedCallback(IntPtr wifi, ConnectionStateChangedCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_connection_state_changed_cb")]
+        internal static extern int UnsetConnectionStateChangedCallback(IntPtr wifi);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_set_rssi_level_changed_cb")]
+        internal static extern int SetRssiLevelchangedCallback(IntPtr wifi, RssiLevelChangedCallback callback, IntPtr userData);
+        [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_unset_rssi_level_changed_cb")]
+        internal static extern int UnsetRssiLevelchangedCallback(IntPtr wifi);
 
         internal static class Ap
         {
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_create")]
-            internal static extern int Create(string essid, out IntPtr ap);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_hidden_create")]
-            internal static extern int CreateHiddenAp(string essid, out IntPtr ap);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_destroy")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_create")]
+            internal static extern int Create(IntPtr wifi, string essid, out IntPtr ap);
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_hidden_create")]
+            internal static extern int CreateHiddenAp(IntPtr wifi, string essid, out IntPtr ap);
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_destroy")]
             internal static extern int Destroy(IntPtr ap);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_clone")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_clone")]
             internal static extern int Clone(out IntPtr cloned, IntPtr original);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_refresh")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_refresh")]
             internal static extern int Refresh(IntPtr ap);
 
             ////Network Information
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_essid")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_essid")]
             internal static extern int GetEssid(IntPtr ap, out IntPtr essid);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_bssid")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_bssid")]
             internal static extern int GetBssid(IntPtr ap, out IntPtr bssid);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_rssi")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_rssi")]
             internal static extern int GetRssi(IntPtr ap, out int rssi);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_frequency")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_frequency")]
             internal static extern int GetFrequency(IntPtr ap, out int frequency);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_max_speed")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_max_speed")]
             internal static extern int GetMaxSpeed(IntPtr ap, out int maxSpeed);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_is_favorite")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_favorite")]
             internal static extern int IsFavorite(IntPtr ap, out bool isFavorite);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_is_passpoint")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passpoint")]
             internal static extern int IsPasspoint(IntPtr ap, out bool isPasspoint);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_connection_state")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_connection_state")]
             internal static extern int GetConnectionState(IntPtr ap, out int connectionState);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_ip_config_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_config_type")]
             internal static extern int GetIpConfigType(IntPtr ap, int addressFamily, out int ipConfigType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_ip_config_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_config_type")]
             internal static extern int SetIpConfigType(IntPtr ap, int addressFamily, int ipConfigType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_ip_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_ip_address")]
             internal static extern int GetIpAddress(IntPtr ap, int addressFamily, out IntPtr ipAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_ip_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_ip_address")]
             internal static extern int SetIpAddress(IntPtr ap, int addressFamily, string ipAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_subnet_mask")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_subnet_mask")]
             internal static extern int GetSubnetMask(IntPtr ap, int addressFamily, out IntPtr subnetMask);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_subnet_mask")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_subnet_mask")]
             internal static extern int SetSubnetMask(IntPtr ap, int addressFamily, string subnetMask);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_gateway_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_gateway_address")]
             internal static extern int GetGatewayAddress(IntPtr ap, int addressFamily, out IntPtr gatewayAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_gateway_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_gateway_address")]
             internal static extern int SetGatewayAddress(IntPtr ap, int addressFamily, string gatewayAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_proxy_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_address")]
             internal static extern int GetProxyAddress(IntPtr ap, int addressFamily, out IntPtr proxyAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_proxy_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_address")]
             internal static extern int SetProxyAddress(IntPtr ap, int addressFamily, string proxyAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_proxy_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_proxy_type")]
             internal static extern int GetProxyType(IntPtr ap, out int proxyType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_proxy_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_proxy_type")]
             internal static extern int SetProxyType(IntPtr ap, int proxyType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_dns_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_dns_address")]
             internal static extern int GetDnsAddress(IntPtr ap, int order, int addressFamily, out IntPtr dnsAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_dns_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_dns_address")]
             internal static extern int SetDnsAddress(IntPtr ap, int order, int addressFamily, string dnsAddress);
 
             ////Security Information
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_security_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_security_type")]
             internal static extern int GetSecurityType(IntPtr ap, out int securityType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_security_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_security_type")]
             internal static extern int SetSecurityType(IntPtr ap, int securityType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_encryption_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_encryption_type")]
             internal static extern int GetEncryptionType(IntPtr ap, out int encryptionType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_encryption_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_encryption_type")]
             internal static extern int SetEncryptionType(IntPtr ap, int encryptionType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_is_passphrase_required")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_passphrase_required")]
             internal static extern int IsPassphraseRequired(IntPtr ap, out bool required);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_passphrase")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_passphrase")]
             internal static extern int SetPassphrase(IntPtr ap, string passphrase);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_is_wps_supported")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_is_wps_supported")]
             internal static extern int IsWpsSupported(IntPtr ap, out bool supported);
 
             ////EAP
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_passphrase")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_passphrase")]
             internal static extern int SetEapPassphrase(IntPtr ap, string userName, string password);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_passphrase")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_passphrase")]
             internal static extern int GetEapPassphrase(IntPtr ap, out IntPtr userName, out bool isPasswordSet);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_ca_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_ca_cert_file")]
             internal static extern int GetEapCaCertFile(IntPtr ap, out IntPtr file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_ca_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_ca_cert_file")]
             internal static extern int SetEapCaCertFile(IntPtr ap, string file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_client_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_client_cert_file")]
             internal static extern int GetEapClientCertFile(IntPtr ap, out IntPtr file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_client_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_client_cert_file")]
             internal static extern int SetEapClientCertFile(IntPtr ap, string file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_private_key_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_private_key_file")]
             internal static extern int GetEapPrivateKeyFile(IntPtr ap, out IntPtr file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_private_key_info")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_private_key_info")]
             internal static extern int SetEapPrivateKeyInfo(IntPtr ap, string file, string password);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_type")]
             internal static extern int GetEapType(IntPtr ap, out int eapType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_type")]
             internal static extern int SetEapType(IntPtr ap, int eapType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_get_eap_auth_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_get_eap_auth_type")]
             internal static extern int GetEapAuthType(IntPtr ap, out int file);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_ap_set_eap_auth_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_ap_set_eap_auth_type")]
             internal static extern int SetEapAuthType(IntPtr ap, int file);
         }
 
         internal static class Config
         {
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_create")]
-            internal static extern int Create(string name, string passPhrase, int securityType, out IntPtr config);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_clone")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_create")]
+            internal static extern int Create(IntPtr wifi, string name, string passPhrase, int securityType, out IntPtr config);
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_clone")]
             internal static extern int Clone(IntPtr origin, out IntPtr cloned);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_destroy")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_destroy")]
             internal static extern int Destroy(IntPtr config);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_save_configuration")]
-            internal static extern int SaveConfiguration(IntPtr config);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_foreach_configuration")]
-            internal static extern int GetForeachConfiguration(HandleCallback callback, IntPtr userData);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_name")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_save")]
+            internal static extern int SaveConfiguration(IntPtr wifi, IntPtr config);
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_foreach_configuration")]
+            internal static extern int GetForeachConfiguration(IntPtr wifi, HandleCallback callback, IntPtr userData);
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_name")]
             internal static extern int GetName(IntPtr config, out IntPtr name);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_security_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_security_type")]
             internal static extern int GetSecurityType(IntPtr config, out int securityType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_proxy_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_proxy_address")]
             internal static extern int SetProxyAddress(IntPtr config, int addressFamily, string proxyAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_proxy_address")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_proxy_address")]
             internal static extern int GetProxyAddress(IntPtr config, out int addressFamily, out IntPtr proxyAddress);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_hidden_ap_property")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_hidden_ap_property")]
             internal static extern int SetHiddenApProperty(IntPtr config, bool isHidden);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_hidden_ap_property")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_hidden_ap_property")]
             internal static extern int GetHiddenApProperty(IntPtr config, out bool isHidden);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_anonymous_identity")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_anonymous_identity")]
             internal static extern int GetEapAnonymousIdentity(IntPtr config, out IntPtr anonymousIdentify);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_anonymous_identity")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_anonymous_identity")]
             internal static extern int SetEapAnonymousIdentity(IntPtr config, string anonymousIdentify);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_ca_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_ca_cert_file")]
             internal static extern int GetEapCaCertFile(IntPtr config, out IntPtr caCert);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_ca_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_ca_cert_file")]
             internal static extern int SetEapCaCertFile(IntPtr config, string caCert);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_client_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_client_cert_file")]
             internal static extern int GetEapClientCertFile(IntPtr config, out IntPtr clientCert);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_client_cert_file")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_client_cert_file")]
             internal static extern int SetEapClientCertFile(IntPtr config, string privateKey, string clientCert);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_identity")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_identity")]
             internal static extern int GetEapIdentity(IntPtr config, out IntPtr identify);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_identity")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_identity")]
             internal static extern int SetEapIdentity(IntPtr config, string identify);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_type")]
             internal static extern int GetEapType(IntPtr config, out int eapType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_type")]
             internal static extern int SetEapType(IntPtr config, int eapType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_auth_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_auth_type")]
             internal static extern int GetEapAuthType(IntPtr config, out int eapAuthType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_auth_type")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_auth_type")]
             internal static extern int SetEapAuthType(IntPtr config, int eapAuthType);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_get_eap_subject_match")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_get_eap_subject_match")]
             internal static extern int GetEapSubjectMatch(IntPtr config, out IntPtr subjectMatch);
-            [DllImport(Libraries.WiFi, EntryPoint = "wifi_config_set_eap_subject_match")]
+            [DllImport(Libraries.WiFi, EntryPoint = "wifi_manager_config_set_eap_subject_match")]
             internal static extern int SetEapSubjectMatch(IntPtr config, string subjectMatch);
         }
     }
old mode 100644 (file)
new mode 100755 (executable)
index a754ff9..4f22cdd
@@ -1,10 +1,11 @@
 {
   "dependencies": {
     "NETStandard.Library": "1.6.0",
+    "System.Threading.Thread": "4.3.0",
     "Tizen": "1.0.2",
     "Tizen.Network.Connection": "1.0.2"
-   },
-   "frameworks": {
-     "netstandard1.3": {}
-   }
-}
+  },
+  "frameworks": {
+    "netstandard1.3": {}
+  }
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 59a0998..282c020
@@ -107,11 +107,11 @@ namespace Tizen.Network.WiFi
             int ret = -1;
             if (hidden)
             {
-                ret = Interop.WiFi.Ap.Create(id, out _apHandle);
+                ret = Interop.WiFi.Ap.Create(WiFiManagerImpl.Instance.GetHandle(), id, out _apHandle);
             }
             else
             {
-                ret = Interop.WiFi.Ap.CreateHiddenAp(id, out _apHandle);
+                ret = Interop.WiFi.Ap.CreateHiddenAp(WiFiManagerImpl.Instance.GetHandle(), id, out _apHandle);
             }
 
             if (ret != (int)WiFiError.None)
old mode 100644 (file)
new mode 100755 (executable)
index fdf01bb..8460064
@@ -133,7 +133,7 @@ namespace Tizen.Network.WiFi
 
         public WiFiConfiguration(string name, string passPhrase, WiFiSecureType type)
         {
-            int ret = Interop.WiFi.Config.Create(name, passPhrase, (int)type, out _configHandle);
+            int ret = Interop.WiFi.Config.Create(WiFiManagerImpl.Instance.GetHandle(), name, passPhrase, (int)type, out _configHandle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to create config handle, Error - " + (WiFiError)ret);
index d19ba8a..5d5eab6 100755 (executable)
@@ -33,11 +33,7 @@ namespace Tizen.Network.WiFi
         {
             get
             {
-                if (Globals.IsInitialize)
-                {
-                    return WiFiManagerImpl.Instance.MacAddress;
-                }
-                return null;
+                return WiFiManagerImpl.Instance.MacAddress;
             }
         }
         /// <summary>
@@ -47,11 +43,7 @@ namespace Tizen.Network.WiFi
         {
             get
             {
-                if (Globals.IsInitialize)
-                {
-                    return WiFiManagerImpl.Instance.InterfaceName;
-                }
-                return null;
+                return WiFiManagerImpl.Instance.InterfaceName;
             }
         }
         /// <summary>
@@ -61,11 +53,7 @@ namespace Tizen.Network.WiFi
         {
             get
             {
-                if (Globals.IsInitialize)
-                {
-                    return WiFiManagerImpl.Instance.ConnectionState;
-                }
-                return default(WiFiConnectionState);
+                return WiFiManagerImpl.Instance.ConnectionState;
             }
         }
         /// <summary>
@@ -75,11 +63,7 @@ namespace Tizen.Network.WiFi
         {
             get
             {
-                if (Globals.IsInitialize)
-                {
-                    return WiFiManagerImpl.Instance.IsActivated;
-                }
-                return false;
+                return WiFiManagerImpl.Instance.IsActivated;
             }
         }
 
@@ -90,17 +74,11 @@ namespace Tizen.Network.WiFi
         {
             add
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.DeviceStateChanged += value;
-                }
+                WiFiManagerImpl.Instance.DeviceStateChanged += value;
             }
             remove
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.DeviceStateChanged -= value;
-                }
+                WiFiManagerImpl.Instance.DeviceStateChanged -= value;
             }
         }
         /// <summary>
@@ -110,17 +88,11 @@ namespace Tizen.Network.WiFi
         {
             add
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.ConnectionStateChanged += value;
-                }
+                WiFiManagerImpl.Instance.ConnectionStateChanged += value;
             }
             remove
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.ConnectionStateChanged -= value;
-                }
+                WiFiManagerImpl.Instance.ConnectionStateChanged -= value;
             }
         }
         /// <summary>
@@ -130,17 +102,11 @@ namespace Tizen.Network.WiFi
         {
             add
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.RssiLevelChanged += value;
-                }
+                WiFiManagerImpl.Instance.RssiLevelChanged += value;
             }
             remove
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.RssiLevelChanged -= value;
-                }
+                WiFiManagerImpl.Instance.RssiLevelChanged -= value;
             }
         }
         /// <summary>
@@ -151,17 +117,11 @@ namespace Tizen.Network.WiFi
         {
             add
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.BackgroundScanFinished += value;
-                }
+                WiFiManagerImpl.Instance.BackgroundScanFinished += value;
             }
             remove
             {
-                if (Globals.IsInitialize)
-                {
-                    WiFiManagerImpl.Instance.BackgroundScanFinished -= value;
-                }
+                WiFiManagerImpl.Instance.BackgroundScanFinished -= value;
             }
         }
         /// <summary>
@@ -170,11 +130,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task contains the lisf for WiFiApInformation objects.</returns>
         static public IEnumerable<WiFiAp> GetFoundAps()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.GetFoundAps();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.GetFoundAps();
         }
         /// <summary>
         /// Gets the result of specific ap scan asynchronously.
@@ -182,11 +138,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task contains the WiFiApInformation object.</returns>
         static public IEnumerable<WiFiAp> GetFoundSpecificAps()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.GetFoundSpecificAps();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.GetFoundSpecificAps();
         }
         /// <summary>
         /// Gets the list of wifi configuration.
@@ -194,11 +146,7 @@ namespace Tizen.Network.WiFi
         /// <returns>A task contains the lisf for WiFiConfiguration objects.</returns>
         static public IEnumerable<WiFiConfiguration> GetWiFiConfigurations()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.GetWiFiConfigurations();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.GetWiFiConfigurations();
         }
         /// <summary>
         /// Saves Wi-Fi configuration of access point.
@@ -206,14 +154,7 @@ namespace Tizen.Network.WiFi
         /// <param name="configuration">The configuration to be stored</param>
         static public void SaveWiFiNetworkConfiguration(WiFiConfiguration configuration)
         {
-            if (Globals.IsInitialize)
-            {
-                WiFiManagerImpl.Instance.SaveWiFiNetworkConfiguration(configuration);
-            }
-            else
-            {
-                throw new InvalidOperationException("Not initialized");
-            }
+            WiFiManagerImpl.Instance.SaveWiFiNetworkConfiguration(configuration);
         }
         /// <summary>
         /// Gets the handle of the connected access point.
@@ -221,11 +162,7 @@ namespace Tizen.Network.WiFi
         /// <returns> The connected wifi access point(AP) information.</returns>
         static public WiFiAp GetConnectedAp()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.GetConnectedAp();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.GetConnectedAp();
         }
         /// <summary>
         /// Deletes the information of stored access point and disconnects it when it connected.<br>
@@ -234,14 +171,7 @@ namespace Tizen.Network.WiFi
         /// <param name="ap">The access point to be removed</param>
         static public void RemoveAP(WiFiAp ap)
         {
-            if (Globals.IsInitialize)
-            {
-                WiFiManagerImpl.Instance.RemoveAp(ap);
-            }
-            else
-            {
-                throw new InvalidOperationException("Not initialized");
-            }
+            WiFiManagerImpl.Instance.RemoveAp(ap);
         }
         /// <summary>
         /// Activates Wi-Fi asynchronously.
@@ -249,11 +179,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the Activate method is done or not.</returns>
         static public Task ActivateAsync()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.ActivateAsync();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ActivateAsync();
         }
         /// <summary>
         /// Activates Wi-Fi asynchronously and displays Wi-Fi picker (popup) when Wi-Fi is not automatically connected.
@@ -261,11 +187,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the ActivateWithPickerTeated method is done or not.</returns>
         static public Task ActivateWithPickerTeatedAsync()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.ActivateWithWiFiPickerTestedAsync();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ActivateWithWiFiPickerTestedAsync();
         }
         /// <summary>
         /// Deactivates Wi-Fi asynchronously.
@@ -273,11 +195,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the Deactivate method is done or not.</returns>
         static public Task DeactivateAsync()
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.DeactivateAsync();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.DeactivateAsync();
         }
         /// <summary>
         /// Starts scan asynchronously.
@@ -285,12 +203,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the Scan method is done or not.</returns>
         static public Task ScanAsync()
         {
-            if (Globals.IsInitialize)
-            {
-                Log.Debug(Globals.LogTag, "ScanAsync");
-                return WiFiManagerImpl.Instance.ScanAsync();
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ScanAsync();
         }
         /// <summary>
         /// Starts specific ap scan, asynchronously.
@@ -299,11 +212,7 @@ namespace Tizen.Network.WiFi
         /// <param name="essid">The essid of hidden ap</param>
         static public Task ScanSpecificApAsync(string essid)
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.ScanSpecificApAsync(essid);
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ScanSpecificApAsync(essid);
         }
         /// <summary>
         /// Connects the access point asynchronously.
@@ -312,12 +221,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the Connect method is done or not.</returns>
         static public Task ConnectAsync(WiFiAp ap)
         {
-            if (Globals.IsInitialize)
-            {
-                Log.Debug(Globals.LogTag, "ConnectAsync");
-                return WiFiManagerImpl.Instance.ConnectAsync(ap);
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ConnectAsync(ap);
         }
         /// <summary>
         /// Connects the access point with WPS PBC asynchronously.
@@ -326,12 +230,7 @@ namespace Tizen.Network.WiFi
         /// <param name="ap">The access point(AP)</param>
         static public Task ConnectByWpsPbcAsync(WiFiAp ap)
         {
-            if (Globals.IsInitialize)
-            {
-                Log.Debug(Globals.LogTag, "ConnectByWpsPbcAsync");
-                return WiFiManagerImpl.Instance.ConnectByWpsPbcAsync(ap);
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.ConnectByWpsPbcAsync(ap);
         }
         /// <summary>
         /// Connects the access point with WPS PIN asynchronously.
@@ -341,12 +240,8 @@ namespace Tizen.Network.WiFi
         /// <param name="pin">The WPS PIN is a non-NULL string with length greater than 0 and less than or equal to 8.</param>
         static public Task ConnectByWpsPinAsync(WiFiAp ap, string pin)
         {
-            if (Globals.IsInitialize)
-            {
-                Log.Debug(Globals.LogTag, "ConnectByWpsPinAsync");
-                return WiFiManagerImpl.Instance.ConnectByWpsPinAsync(ap, pin);
-            }
-            throw new InvalidOperationException("Not initialized");
+            Log.Debug(Globals.LogTag, "ConnectByWpsPinAsync");
+            return WiFiManagerImpl.Instance.ConnectByWpsPinAsync(ap, pin);
         }
         /// <summary>
         /// Disconnects the access point asynchronously.
@@ -354,11 +249,7 @@ namespace Tizen.Network.WiFi
         /// <returns> A task indicates whether the Disconnect method is done or not.</returns>
         static public Task DisconnectAsync(WiFiAp ap)
         {
-            if (Globals.IsInitialize)
-            {
-                return WiFiManagerImpl.Instance.DisconnectAsync(ap);
-            }
-            throw new InvalidOperationException("Not initialized");
+            return WiFiManagerImpl.Instance.DisconnectAsync(ap);
         }
     }
 }
index f64c917..fa7a0a3 100755 (executable)
@@ -16,6 +16,7 @@
 
 using System;
 using System.Collections.Generic;
+using System.Threading;
 using System.Threading.Tasks;
 
 namespace Tizen.Network.WiFi
@@ -23,24 +24,55 @@ namespace Tizen.Network.WiFi
     static internal class Globals
     {
         internal const string LogTag = "Tizen.Network.WiFi";
-        internal static bool s_isInitialize = false;
+    }
 
-        internal static bool IsInitialize
+    internal class HandleHolder : IDisposable
+    {
+        private IntPtr _handle = IntPtr.Zero;
+        private bool disposed = false;
+
+        internal HandleHolder()
         {
-            get
+            Log.Debug(Globals.LogTag, "HandleHolder() Constructor");
+            _handle = WiFiManagerImpl.Instance.Initialize();
+            Log.Debug(Globals.LogTag, "Handle: " + _handle);
+        }
+
+        ~HandleHolder()
+        {
+            Dispose(false);
+        }
+
+        internal IntPtr GetHandle()
+        {
+            Log.Debug(Globals.LogTag, "Handleholder handle = " + _handle);
+            return _handle;
+        }
+        public void Dispose()
+        {
+            Dispose(true);
+            GC.SuppressFinalize(this);
+        }
+
+        private void Dispose(bool disposing)
+        {
+            Log.Debug(Globals.LogTag, ">>> HandleHolder Dispose with " + disposing);
+            Log.Debug(Globals.LogTag, ">>> Handle: " + _handle);
+            if (disposed)
+                return;
+
+            if (disposing)
             {
-                if (!Globals.s_isInitialize)
-                {
-                    WiFiManagerImpl.Instance.Initialize();
-                }
-                return Globals.s_isInitialize;
+                // Free managed objects.
+                WiFiManagerImpl.Instance.Deinitialize(_handle);
             }
+            disposed = true;
         }
     }
 
     internal partial class WiFiManagerImpl : IDisposable
     {
-        private static WiFiManagerImpl _instance;
+        private static WiFiManagerImpl _instance = null;
         private Dictionary<IntPtr, Interop.WiFi.VoidCallback> _callback_map = new Dictionary<IntPtr, Interop.WiFi.VoidCallback>();
         private int _requestId = 0;
         private string _macAddress;
@@ -53,7 +85,7 @@ namespace Tizen.Network.WiFi
                 if (String.IsNullOrEmpty(_macAddress))
                 {
                     string address;
-                    int ret = Interop.WiFi.GetMacAddress(out address);
+                    int ret = Interop.WiFi.GetMacAddress(GetHandle(), out address);
                     if (ret != (int)WiFiError.None)
                     {
                         Log.Error(Globals.LogTag, "Failed to get mac address, Error - " + (WiFiError)ret);
@@ -72,7 +104,7 @@ namespace Tizen.Network.WiFi
             get
             {
                 string name;
-                int ret = Interop.WiFi.GetNetworkInterfaceName(out name);
+                int ret = Interop.WiFi.GetNetworkInterfaceName(GetHandle(), out name);
                 if (ret != (int)WiFiError.None)
                 {
                     Log.Error(Globals.LogTag, "Failed to get interface name, Error - " + (WiFiError)ret);
@@ -86,7 +118,7 @@ namespace Tizen.Network.WiFi
             get
             {
                 int state;
-                int ret = Interop.WiFi.GetConnectionState(out state);
+                int ret = Interop.WiFi.GetConnectionState(GetHandle(), out state);
                 if (ret != (int)WiFiError.None)
                 {
                     Log.Error(Globals.LogTag, "Failed to get connection state, Error - " + (WiFiError)ret);
@@ -100,7 +132,7 @@ namespace Tizen.Network.WiFi
             get
             {
                 bool active;
-                int ret = Interop.WiFi.IsActivated(out active);
+                int ret = Interop.WiFi.IsActivated(GetHandle(), out active);
                 if (ret != (int)WiFiError.None)
                 {
                     Log.Error(Globals.LogTag, "Failed to get isActive, Error - " + (WiFiError)ret);
@@ -113,8 +145,10 @@ namespace Tizen.Network.WiFi
         {
             get
             {
+                Log.Debug(Globals.LogTag, "Instance getter");
                 if (_instance == null)
                 {
+                    Log.Debug(Globals.LogTag, "Instance is null");
                     _instance = new WiFiManagerImpl();
                 }
 
@@ -122,6 +156,12 @@ namespace Tizen.Network.WiFi
             }
         }
 
+        private static ThreadLocal<HandleHolder> s_threadName = new ThreadLocal<HandleHolder>(() =>
+        {
+            Log.Info(Globals.LogTag, "In threadlocal delegate");
+            return new HandleHolder();
+        });
+
         private WiFiManagerImpl()
         {
         }
@@ -147,39 +187,36 @@ namespace Tizen.Network.WiFi
                 // Free managed objects.
             }
             //Free unmanaged objects
-            deinitialize();
             RemoveAllRegisteredEvent();
             disposed = true;
         }
 
-        internal void Initialize()
+        internal IntPtr GetHandle()
         {
-            int ret = Interop.WiFi.Initialize();
+            Log.Debug(Globals.LogTag, "GetHandle, Thread Id = " + Thread.CurrentThread.ManagedThreadId);
+            return s_threadName.Value.GetHandle();
+        }
+
+        internal IntPtr Initialize()
+        {
+            IntPtr handle;
+            int ret = Interop.WiFi.Initialize(out handle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to initialize wifi, Error - " + (WiFiError)ret);
                 WiFiErrorFactory.ThrowWiFiException(ret);
             }
-            Globals.s_isInitialize = true;
-            string address;
-            ret = Interop.WiFi.GetMacAddress(out address);
-            if (ret != (int)WiFiError.None)
-            {
-                Log.Error(Globals.LogTag, "Failed to get mac address, Error - " + (WiFiError)ret);
-                _macAddress = "";
-            }
-            _macAddress = address;
+            return handle;
         }
 
-        private void deinitialize()
+        internal void Deinitialize(IntPtr handle)
         {
-            int ret = Interop.WiFi.Deinitialize();
+            int ret = Interop.WiFi.Deinitialize(handle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to deinitialize wifi, Error - " + (WiFiError)ret);
                 WiFiErrorFactory.ThrowWiFiException(ret);
             }
-            Globals.s_isInitialize = false;
         }
 
         internal IEnumerable<WiFiAp> GetFoundAps()
@@ -198,7 +235,7 @@ namespace Tizen.Network.WiFi
                 return false;
             };
 
-            int ret = Interop.WiFi.GetForeachFoundAps(callback, IntPtr.Zero);
+            int ret = Interop.WiFi.GetForeachFoundAps(GetHandle(), callback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to get all APs, Error - " + (WiFiError)ret);
@@ -225,7 +262,7 @@ namespace Tizen.Network.WiFi
 
             };
 
-            int ret = Interop.WiFi.GetForeachFoundSpecificAps(callback, IntPtr.Zero);
+            int ret = Interop.WiFi.GetForeachFoundSpecificAps(GetHandle(), callback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to get specific APs, Error - " + (WiFiError)ret);
@@ -251,7 +288,7 @@ namespace Tizen.Network.WiFi
                 return false;
             };
 
-            int ret = Interop.WiFi.Config.GetForeachConfiguration(callback, IntPtr.Zero);
+            int ret = Interop.WiFi.Config.GetForeachConfiguration(GetHandle(), callback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to get configurations, Error - " + (WiFiError)ret);
@@ -264,7 +301,7 @@ namespace Tizen.Network.WiFi
         internal void SaveWiFiNetworkConfiguration(WiFiConfiguration config)
         {
             IntPtr configHandle = config.GetHandle();
-            int ret = Interop.WiFi.Config.SaveConfiguration(configHandle);
+            int ret = Interop.WiFi.Config.SaveConfiguration(GetHandle(), configHandle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to save configuration, Error - " + (WiFiError)ret);
@@ -276,7 +313,7 @@ namespace Tizen.Network.WiFi
         {
             IntPtr apHandle;
 
-            int ret = Interop.WiFi.GetConnectedAp(out apHandle);
+            int ret = Interop.WiFi.GetConnectedAp(GetHandle(), out apHandle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to connect with AP, Error - " + (WiFiError)ret);
@@ -289,7 +326,7 @@ namespace Tizen.Network.WiFi
         internal void RemoveAp(WiFiAp ap)
         {
             IntPtr apHandle = ap.GetHandle();
-            int ret = Interop.WiFi.RemoveAp(apHandle);
+            int ret = Interop.WiFi.RemoveAp(GetHandle(), apHandle);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to remove with AP, Error - " + (WiFiError)ret);
@@ -319,7 +356,7 @@ namespace Tizen.Network.WiFi
                     }
                 };
             }
-            int ret = Interop.WiFi.Activate(_callback_map[id], id);
+            int ret = Interop.WiFi.Activate(GetHandle(), _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to activate wifi, Error - " + (WiFiError)ret);
@@ -350,7 +387,7 @@ namespace Tizen.Network.WiFi
                     }
                 };
             }
-            int ret = Interop.WiFi.ActivateWithWiFiPickerTested(_callback_map[id], id);
+            int ret = Interop.WiFi.ActivateWithWiFiPickerTested(GetHandle(), _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to activate wifi, Error - " + (WiFiError)ret);
@@ -381,7 +418,7 @@ namespace Tizen.Network.WiFi
                     }
                 };
             }
-            int ret = Interop.WiFi.Deactivate(_callback_map[id], id);
+            int ret = Interop.WiFi.Deactivate(GetHandle(), _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to deactivate wifi, Error - " + (WiFiError)ret);
@@ -412,7 +449,7 @@ namespace Tizen.Network.WiFi
                     }
                 };
             }
-            int ret = Interop.WiFi.Scan(_callback_map[id], id);
+            int ret = Interop.WiFi.Scan(GetHandle(), _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to scan all AP, Error - " + (WiFiError)ret);
@@ -443,7 +480,7 @@ namespace Tizen.Network.WiFi
                     }
                 };
             }
-            int ret = Interop.WiFi.ScanSpecificAp(essid, _callback_map[id], id);
+            int ret = Interop.WiFi.ScanSpecificAp(GetHandle(), essid, _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to scan with specific AP, Error - " + (WiFiError)ret);
@@ -475,7 +512,7 @@ namespace Tizen.Network.WiFi
                 };
             }
             IntPtr apHandle = ap.GetHandle();
-            int ret = Interop.WiFi.Connect(apHandle, _callback_map[id], id);
+            int ret = Interop.WiFi.Connect(GetHandle(), apHandle, _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
@@ -507,7 +544,7 @@ namespace Tizen.Network.WiFi
                 };
             }
             IntPtr apHandle = ap.GetHandle();
-            int ret = Interop.WiFi.Disconnect(apHandle, _callback_map[id], id);
+            int ret = Interop.WiFi.Disconnect(GetHandle(), apHandle, _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to disconnect wifi, Error - " + (WiFiError)ret);
@@ -539,7 +576,7 @@ namespace Tizen.Network.WiFi
                 };
             }
             IntPtr apHandle = ap.GetHandle();
-            int ret = Interop.WiFi.ConnectByWpsPbc(apHandle, _callback_map[id], id);
+            int ret = Interop.WiFi.ConnectByWpsPbc(GetHandle(), apHandle, _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
@@ -571,7 +608,7 @@ namespace Tizen.Network.WiFi
                 };
             }
             IntPtr apHandle = ap.GetHandle();
-            int ret = Interop.WiFi.ConnectByWpsPin(apHandle, pin, _callback_map[id], id);
+            int ret = Interop.WiFi.ConnectByWpsPin(GetHandle(), apHandle, pin, _callback_map[id], id);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to connect wifi, Error - " + (WiFiError)ret);
old mode 100644 (file)
new mode 100755 (executable)
index 917d420..e8cd8ed
@@ -163,7 +163,7 @@ namespace Tizen.Network.WiFi
                 DeviceStateChangedEventArgs e = new DeviceStateChangedEventArgs(state);
                 _deviceStateChanged.SafeInvoke(null, e);
             };
-            int ret = Interop.WiFi.SetDeviceStateChangedCallback(_deviceChangedCallback, IntPtr.Zero);
+            int ret = Interop.WiFi.SetDeviceStateChangedCallback(GetHandle(), _deviceChangedCallback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to set device state changed callback, Error - " + (WiFiError)ret);
@@ -172,7 +172,7 @@ namespace Tizen.Network.WiFi
 
         private void UnregisterDeviceStateChangedEvent()
         {
-            int ret = Interop.WiFi.UnsetDeviceStateChangedCallback();
+            int ret = Interop.WiFi.UnsetDeviceStateChangedCallback(GetHandle());
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to unset device state changed callback, Error - " + (WiFiError)ret);
@@ -187,7 +187,7 @@ namespace Tizen.Network.WiFi
                 ConnectionStateChangedEventArgs e = new ConnectionStateChangedEventArgs(state, ap);
                 _connectionStateChanged.SafeInvoke(null, e);
             };
-            int ret = Interop.WiFi.SetConnectionStateChangedCallback(_connectionChangedCallback, IntPtr.Zero);
+            int ret = Interop.WiFi.SetConnectionStateChangedCallback(GetHandle(), _connectionChangedCallback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to set copnnection state changed callback, Error - " + (WiFiError)ret);
@@ -196,7 +196,7 @@ namespace Tizen.Network.WiFi
 
         private void UnregisterConnectionStateChangedEvent()
         {
-            int ret = Interop.WiFi.UnsetConnectionStateChangedCallback();
+            int ret = Interop.WiFi.UnsetConnectionStateChangedCallback(GetHandle());
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to unset device state changed callback, Error - " + (WiFiError)ret);
@@ -212,7 +212,7 @@ namespace Tizen.Network.WiFi
                 RssiLevelChangedEventArgs e = new RssiLevelChangedEventArgs(level);
                 _rssiLevelChanged.SafeInvoke(null, e);
             };
-            int ret = Interop.WiFi.SetRssiLevelchangedCallback(_rssiChangedCallback, IntPtr.Zero);
+            int ret = Interop.WiFi.SetRssiLevelchangedCallback(GetHandle(), _rssiChangedCallback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to set rssi level changed callback, Error - " + (WiFiError)ret);
@@ -221,7 +221,7 @@ namespace Tizen.Network.WiFi
 
         private void UnregisterRssiLevelChangedEvent()
         {
-            int ret = Interop.WiFi.UnsetRssiLevelchangedCallback();
+            int ret = Interop.WiFi.UnsetRssiLevelchangedCallback(GetHandle());
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to unset rssi level changed callback, Error - " + (WiFiError)ret);
@@ -235,7 +235,7 @@ namespace Tizen.Network.WiFi
                 EventArgs e = new EventArgs();
                 _backgroundScanFinished.SafeInvoke(null, e);
             };
-            int ret = Interop.WiFi.SetBackgroundScanCallback(_backgroundScanFinishedCallback, IntPtr.Zero);
+            int ret = Interop.WiFi.SetBackgroundScanCallback(GetHandle(), _backgroundScanFinishedCallback, IntPtr.Zero);
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to set background scan callback, Error - " + (WiFiError)ret);
@@ -244,7 +244,7 @@ namespace Tizen.Network.WiFi
 
         private void UnregisterBackgroundScanFinishedEvent()
         {
-            int ret = Interop.WiFi.UnsetBackgroundScanCallback();
+            int ret = Interop.WiFi.UnsetBackgroundScanCallback(GetHandle());
             if (ret != (int)WiFiError.None)
             {
                 Log.Error(Globals.LogTag, "Failed to unset background scan callback, Error - " + (WiFiError)ret);