Add UnregisterResource() C# API 52/116852/2
authorHongkuk, Son <hongkuk.son@samsung.com>
Tue, 28 Feb 2017 13:35:14 +0000 (22:35 +0900)
committerHongkuk, Son <hongkuk.son@samsung.com>
Thu, 2 Mar 2017 04:39:32 +0000 (13:39 +0900)
In IoTConnectivityServerManager,
- destroy a resource with resource handle
- remove a resource from resource list

Signed-off-by: Hongkuk, Son <hongkuk.son@samsung.com>
Change-Id: Iccb503ab6e94d6e1a504aac12b5d248321e6b4cb

Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/IoTConnectivityServerManager.cs

index 8af3813..3c527b0 100755 (executable)
@@ -113,6 +113,42 @@ namespace Tizen.Network.IoTConnectivity
         }
 
         /// <summary>
+        /// Unregisters a resource in IoTCon server
+        /// </summary>
+        /// <privilege>
+        /// http://tizen.org/privilege/internet
+        /// </privilege>
+        /// <param name="resource">The resource to unregister</param>
+        /// <pre>
+        /// Initialize() should be called to initialize.
+        /// </pre>
+        /// <seealso cref="Resource"/>
+        /// <seealso cref="LiteResource"/>
+        /// <code>
+        /// ResourceTypes types = new ResourceTypes(new List<string>(){ "org.tizen.light" });
+        /// Attributes attributes = new Attributes { { "state", "ON" }};
+        /// Resource res = new LiteResource("/room/1", types, ResourcePolicy.Discoverable, attributes);
+        /// IoTConnectivityServerManager.RegisterResource(res);
+        /// try {
+        ///     IoTConnectivityServerManager.UnregisterResource(res);
+        /// } catch(Exception ex) {
+        ///     Console.Log("Exception caught : " + ex.Message);
+        /// }
+        /// </code>
+        public static void UnregisterResource(Resource resource)
+        {
+            if (resource != null)
+            {
+                if (resource.ResourceHandle != IntPtr.Zero)
+                {
+                    Interop.IoTConnectivity.Server.Resource.Destroy(resource.ResourceHandle);
+                }
+
+                _resources.Remove(resource);
+            }
+        }
+
+        /// <summary>
         /// Starts presence of a server
         /// </summary>
         /// <remarks>