Fixed issues, Modified spec to use xbuild, doxygen comments
authorrajeev ranjan <rajeev.ran@samsung.com>
Wed, 22 Jun 2016 15:06:51 +0000 (20:36 +0530)
committerrajeev ranjan <rajeev.ran@samsung.com>
Tue, 5 Jul 2016 10:58:54 +0000 (16:28 +0530)
Change-Id: Iff287d34d3025ca5f2d983c4f202780ca4bd8b7d
Signed-off-by: rajeev ranjan <rajeev.ran@samsung.com>
23 files changed:
Makefile [deleted file]
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity.csproj
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/Attributes.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/CacheUpdatedEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/DeviceInformationFoundEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/FindingErrorOccurredEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/IoTConnectivityClientManager.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/IoTConnectivityErrorFactory.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/LiteResource.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/ObserverNotifiedEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/PlatformInformationFoundEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/PresenceReceivedEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/RemoteResource.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/RemoteResponse.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/Representation.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/Request.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/Resource.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/ResourceFoundEventArgs.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/ResourceOptions.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/ResourceQuery.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/Response.cs
Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity/StateChangedEventArgs.cs
packaging/csapi-network-iotconnectivity.spec

diff --git a/Makefile b/Makefile
deleted file mode 100755 (executable)
index 8058f34..0000000
--- a/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-ASM_DIRS := Tizen.Network.IoTConnectivity
-ASM_DLLS := $(addsuffix .dll,$(ASM_DIRS))
-
-FLAGS := /unsafe
-
-ALL: $(ASM_DLLS)
-
-define make-dll
-$(eval ASM = $(strip $1))
-$(eval SRC = $(shell find $(ASM) -path $(ASM)/obj -prune -o -name '*.cs' -print))
-$(eval PKG = $(shell echo $2 | tr ' ' ','))
-$(ASM).dll: $(SRC)
-       @echo "[BUILD] $$@"
-       @mcs /nologo /out:$$@ /t:library /keyfile:$(ASM)/$(ASM).snk $(addprefix /pkg:,$(PKG)) $(FLAGS) $(SRC)
-       @echo "[CHECK] $$@"
-       @RET=`mono-shlib-cop $$@`; \
-  CNT=`echo $$$$RET | grep -e '^error:' | wc -l`; \
-  if [ $$$$CNT -gt 0 ]; then echo $$$$RET; rm -f $$@ exit 1; fi
-endef
-
-$(eval $(call make-dll, Tizen.Network.IoTConnectivity, csapi-tizen))
-
-clean:
-       @rm -f $(ASM_DLLS)
index a7ef7f3..9c83e2a 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
@@ -11,6 +11,7 @@
     <AssemblyName>Tizen.Network.IoTConnectivity</AssemblyName>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
     <ProductVersion>8.0.30703</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
   </PropertyGroup>
@@ -22,7 +23,6 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
     <Reference Include="System.Data" />
     <Reference Include="System.Net.Http" />
     <Reference Include="System.Xml" />
-    <Reference Include="Tizen.Internals">
-      <HintPath>..\..\tizen\Tizen.Internals\bin\Debug\Tizen.Internals.dll</HintPath>
-    </Reference>
-    <Reference Include="Tizen">
-      <HintPath>..\..\tizen\Tizen\bin\Debug\Tizen.dll</HintPath>
-    </Reference>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Tizen.Network.IoTConnectivity\Attributes.cs" />\r
+    <Compile Include="Tizen.Network.IoTConnectivity\Attributes.cs" />
     <Compile Include="Tizen.Network.IoTConnectivity\CacheUpdatedEventArgs.cs" />
     <Compile Include="Tizen.Network.IoTConnectivity\DeviceInformationFoundEventArgs.cs" />
     <Compile Include="Tizen.Network.IoTConnectivity\FindingErrorOccurredEventArgs.cs" />
   <ItemGroup>
     <None Include="Tizen.Network.IoTConnectivity.snk" />
   </ItemGroup>
+  <ItemGroup />
+  <ItemGroup>
+    <Reference Include="Tizen">
+      <PkgConfig>csapi-tizen</PkgConfig>
+      <HintPath>..\..\tizen\Tizen\obj\Debug\Tizen.dll</HintPath>
+    </Reference>
+    <Reference Include="Tizen.Internals">
+      <PkgConfig>csapi-tizen</PkgConfig>
+      <HintPath>..\..\tizen\Tizen.Internals\bin\Debug\Tizen.Internals.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\tizen\Tizen.Internals\Tizen.Internals.csproj">
+      <Project>{B9AA1CB2-F72D-4A30-A33B-A20C850A38A0}</Project>
+      <Name>Tizen.Internals</Name>
+      <Private>True</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\tizen\Tizen\Tizen.csproj">
+      <Project>{7659CA59-410D-41A1-9841-586E88BC78C9}</Project>
+      <Name>Tizen</Name>
+      <Private>True</Private>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="AfterBuild">
   </Target>
   -->
-</Project>
+</Project>
\ No newline at end of file
index 6a6abaf..23e32c5 100644 (file)
@@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Attributes represents current attributes of a resource
+    /// This class represents current attributes of a resource.
     /// </summary>
     public class Attributes : IDictionary<string, object>, IDisposable
     {
index 27cb177..95a8f5b 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// CacheUpdatedEventArgs class. This class is an event arguments of the CacheUpdated event.
+    /// This class is an event arguments of the CacheUpdated event.
     /// </summary>
     public class CacheUpdatedEventArgs : EventArgs
     {
+        internal CacheUpdatedEventArgs() { }
+
         /// <summary>
         /// Representation property.
         /// </summary>
index 7bda503..ceab212 100755 (executable)
@@ -9,10 +9,12 @@
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// DeviceInformationFoundEventArgs class. This class is an event arguments of the DeviceInformationFound event.
+    /// This class is an event arguments of the DeviceInformationFound event.
     /// </summary>
     public class DeviceInformationFoundEventArgs
     {
+        internal DeviceInformationFoundEventArgs() { }
+
         /// <summary>
         /// The request id
         /// </summary>
index 587f353..d5453e8 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// FoundErrorEventArgs class. This class is an event arguments of the FoundError event.
+    /// This class is an event arguments of the FindingErrorOccurred event.
     /// </summary>
     public class FindingErrorOccurredEventArgs : EventArgs
     {
+        internal FindingErrorOccurredEventArgs() { }
+
         /// <summary>
         /// RequestId property.
         /// </summary>
index 0152de7..fcc7129 100755 (executable)
@@ -12,6 +12,9 @@ using System.Runtime.InteropServices;
 
 namespace Tizen.Network.IoTConnectivity
 {
+    /// <summary>
+    /// IoT connectivity client manager.
+    /// </summary>
     public static class IoTConnectivityClientManager
     {
         public const string MulticastAddress = null;
@@ -179,10 +182,10 @@ namespace Tizen.Network.IoTConnectivity
             }
             s_presenceCallbacksMap[id] = (IntPtr presence, int result, IntPtr presenceResponseHandle, IntPtr userData) =>
             {
-                if (presenceResponseHandle != IntPtr.Zero)
+                int presenceId = (int)userData;
+                if (result == (int)IoTConnectivityError.None)
                 {
-                    int presenceId = (int)userData;
-                    if (result == 0)
+                    if (presenceResponseHandle != IntPtr.Zero)
                     {
                         PresenceReceivedEventArgs e = GetPresenceReceivedEventArgs(presenceId, presenceResponseHandle);
                         if (e == null)
@@ -194,10 +197,15 @@ namespace Tizen.Network.IoTConnectivity
                     }
                     else
                     {
-                        FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(presenceId, result);
-                        FindingErrorOccurred?.Invoke(null, e);
+                        Log.Error(IoTConnectivityErrorFactory.LogTag, "Handle is null");
+                        return;
                     }
                 }
+                else
+                {
+                    FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(presenceId, result);
+                    FindingErrorOccurred?.Invoke(null, e);
+                }
             };
 
             IntPtr presenceHandle;
@@ -276,10 +284,10 @@ namespace Tizen.Network.IoTConnectivity
             }
             s_resourceFoundCallbacksMap[id] = (IntPtr remoteResourceHandle, int result, IntPtr userData) =>
             {
-                if (remoteResourceHandle != IntPtr.Zero)
+                int requestId = (int)userData;
+                if (result == (int)IoTConnectivityError.None)
                 {
-                    int requestId = (int)userData;
-                    if (result == (int)IoTConnectivityError.None)
+                    if (remoteResourceHandle != IntPtr.Zero)
                     {
                         RemoteResource resource = null;
                         try
@@ -300,13 +308,18 @@ namespace Tizen.Network.IoTConnectivity
                     }
                     else
                     {
-                        FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
-                        FindingErrorOccurred?.Invoke(null, e);
+                        Log.Error(IoTConnectivityErrorFactory.LogTag, "Handle is null");
+                        return;
+                    }
+                }
+                else
+                {
+                    FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
+                    FindingErrorOccurred?.Invoke(null, e);
 
-                        lock (s_resourceFoundCallbacksMap)
-                        {
-                            s_resourceFoundCallbacksMap.Remove(id);
-                        }
+                    lock (s_resourceFoundCallbacksMap)
+                    {
+                        s_resourceFoundCallbacksMap.Remove(id);
                     }
                 }
             };
@@ -345,10 +358,10 @@ namespace Tizen.Network.IoTConnectivity
             }
             s_deviceInformationCallbacksMap[id] = (IntPtr deviceInfoHandle, int result, IntPtr userData) =>
             {
-                if (deviceInfoHandle != IntPtr.Zero)
+                int requestId = (int)userData;
+                if (result == (int)IoTConnectivityError.None)
                 {
-                    int requestId = (int)userData;
-                    if (result == 0)
+                    if (deviceInfoHandle != IntPtr.Zero)
                     {
                         DeviceInformationFoundEventArgs e = GetDeviceInformationFoundEventArgs(requestId, deviceInfoHandle);
                         if (e == null)
@@ -360,13 +373,18 @@ namespace Tizen.Network.IoTConnectivity
                     }
                     else
                     {
-                        FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
-                        FindingErrorOccurred?.Invoke(null, e);
+                        Log.Error(IoTConnectivityErrorFactory.LogTag, "Handle is null");
+                        return;
+                    }
+                }
+                else
+                {
+                    FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
+                    FindingErrorOccurred?.Invoke(null, e);
 
-                        lock (s_deviceInformationCallbacksMap)
-                        {
-                            s_deviceInformationCallbacksMap.Remove(id);
-                        }
+                    lock (s_deviceInformationCallbacksMap)
+                    {
+                        s_deviceInformationCallbacksMap.Remove(id);
                     }
                 }
             };
@@ -407,10 +425,10 @@ namespace Tizen.Network.IoTConnectivity
             }
             s_platformInformationCallbacksMap[id] = (IntPtr platformInfoHandle, int result, IntPtr userData) =>
             {
-                if (platformInfoHandle != IntPtr.Zero)
+                int requestId = (int)userData;
+                if (result == (int)IoTConnectivityError.None)
                 {
-                    int requestId = (int)userData;
-                    if (result == 0)
+                    if (platformInfoHandle != IntPtr.Zero)
                     {
                         PlatformInformationFoundEventArgs e = GetPlatformInformationFoundEventArgs(requestId, platformInfoHandle);
                         if (e == null)
@@ -422,13 +440,18 @@ namespace Tizen.Network.IoTConnectivity
                     }
                     else
                     {
-                        FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
-                        FindingErrorOccurred?.Invoke(null, e);
+                        Log.Error(IoTConnectivityErrorFactory.LogTag, "Handle is null");
+                        return;
+                    }
+                }
+                else
+                {
+                    FindingErrorOccurredEventArgs e = GetFindingErrorOccurredEventArgs(requestId, result);
+                    FindingErrorOccurred?.Invoke(null, e);
 
-                        lock (s_platformInformationCallbacksMap)
-                        {
-                            s_platformInformationCallbacksMap.Remove(id);
-                        }
+                    lock (s_platformInformationCallbacksMap)
+                    {
+                        s_platformInformationCallbacksMap.Remove(id);
                     }
                 }
             };
index dc29628..f0dc3be 100755 (executable)
@@ -21,11 +21,11 @@ namespace Tizen.Network.IoTConnectivity
         NotSupported = ErrorCode.NotSupported,
         NoData = ErrorCode.NoData,
         TimedOut = ErrorCode.TimedOut,
-        // TODO: Fix IoTivity error mask
-        Representation = 0x10700000 | 0x01,
-        InvalidType = 0x10700000 | 0x02,
-        Already = 0x10700000 | 0x03,
-        System = 0x10700000 | 0x04,
+        Iotivity = -0x01C80000 | 0x01,
+        Representation = -0x01C80000 | 0x02,
+        InvalidType = -0x01C80000 | 0x03,
+        Already = -0x01C80000 | 0x04,
+        System = -0x01C80000 | 0x06,
     }
 
     internal static class IoTConnectivityErrorFactory
index 53f20e9..d22ed2a 100755 (executable)
@@ -10,6 +10,9 @@ using System.Collections.Generic;
 
 namespace Tizen.Network.IoTConnectivity
 {
+    /// <summary>
+    /// Class represnets a lite resource.
+    /// </summary>
     public class LiteResource : Resource
     {
         /// <summary>
@@ -35,7 +38,7 @@ namespace Tizen.Network.IoTConnectivity
         /// </summary>
         /// <param name="attribs">The new attributes of the lite resource</param>
         /// <returns>true to accept post request, false to reject it</returns>
-        public virtual bool OnPost(Attributes attribs)
+        protected virtual bool OnPost(Attributes attribs)
         {
             return true;
         }
@@ -44,7 +47,7 @@ namespace Tizen.Network.IoTConnectivity
         /// Called on the get event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public sealed override Response OnGet(Request request)
+        protected sealed override Response OnGet(Request request)
         {
             Representation representation = new Representation()
             {
@@ -67,7 +70,7 @@ namespace Tizen.Network.IoTConnectivity
         /// Called on the put event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public sealed override Response OnPut(Request request)
+        protected sealed override Response OnPut(Request request)
         {
             Response response = new Response();
             response.Result = ResponseCode.Forbidden;
@@ -78,7 +81,7 @@ namespace Tizen.Network.IoTConnectivity
         /// Called on the post event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public sealed override Response OnPost(Request request)
+        protected sealed override Response OnPost(Request request)
         {
             if (OnPost(request.Representation.Attributes))
             {
@@ -109,7 +112,7 @@ namespace Tizen.Network.IoTConnectivity
         /// Called on the delete event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public sealed override Response OnDelete(Request request)
+        protected sealed override Response OnDelete(Request request)
         {
             Response response = new Response();
             response.Result = ResponseCode.Forbidden;
@@ -122,7 +125,7 @@ namespace Tizen.Network.IoTConnectivity
         /// <param name="request">Request.</param>
         /// <param name="observerType">Observer type</param>
         /// <param name="observeId">Observe identifier.</param>
-        public sealed override bool OnObserving(Request request, ObserveType observeType, int observeId)
+        protected sealed override bool OnObserving(Request request, ObserveType observeType, int observeId)
         {
             return true;
         }
index 46b1397..616912a 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// ObserverNotifiedEventArgs class. This class is an event arguments of the ObserverNotified event.
+    /// This class is an event arguments of the ObserverNotified event.
     /// </summary>
     public class ObserverNotifiedEventArgs : EventArgs
     {
+        internal ObserverNotifiedEventArgs() { }
+
         /// <summary>
         /// Result property.
         /// </summary>
index b085872..176c425 100755 (executable)
@@ -9,10 +9,12 @@
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// PlatformInformationFoundEventArgs class. This class is an event arguments of the PlatformInformationFound event.
+    /// This class is an event arguments of the PlatformInformationFound event.
     /// </summary>
     public class PlatformInformationFoundEventArgs
     {
+        internal PlatformInformationFoundEventArgs() { }
+
         /// <summary>
         /// The request id
         /// </summary>
index 053b575..75b4c41 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// PresenceReceivedEventArgs class. This class is an event arguments of the PresenceReceived event.
+    /// This class is an event arguments of the PresenceReceived event.
     /// </summary>
     public class PresenceReceivedEventArgs : EventArgs
     {
+        internal PresenceReceivedEventArgs() { }
+
         /// <summary>
         /// PresenceId property.
         /// </summary>
index 1a44fe8..e7af5bf 100755 (executable)
@@ -15,7 +15,7 @@ using System.Threading.Tasks;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// RemoteResource class
+    /// This class represents a remote resource.
     /// </summary>
     public class RemoteResource : IDisposable
     {
@@ -374,8 +374,14 @@ namespace Tizen.Network.IoTConnectivity
                 {
                     _responseCallbacksMap.Remove(responseCallbackId);
                 }
-
-                if (responseHandle != IntPtr.Zero)
+                if (err == (int)(IoTConnectivityError.Iotivity))
+                {
+                    RemoteResponse response = new RemoteResponse();
+                    response.Result = ResponseCode.Forbidden;
+                    response.Representation = null;
+                    tcsRemoteResponse.TrySetResult(response);
+                }
+                else if (responseHandle != IntPtr.Zero)
                 {
                     try
                     {
@@ -392,7 +398,6 @@ namespace Tizen.Network.IoTConnectivity
                     tcsRemoteResponse.TrySetException(IoTConnectivityErrorFactory.GetException((int)IoTConnectivityError.System));
                 }
             };
-
             IntPtr queryHandle = (query == null) ? IntPtr.Zero : query._resourceQueryHandle;
             int errCode = Interop.IoTConnectivity.Client.RemoteResource.Put(_remoteResourceHandle, representation._representationHandle, queryHandle, _responseCallbacksMap[id], id);
             if (errCode != (int)IoTConnectivityError.None)
@@ -474,8 +479,14 @@ namespace Tizen.Network.IoTConnectivity
                 {
                     _responseCallbacksMap.Remove(responseCallbackId);
                 }
-
-                if (responseHandle != IntPtr.Zero)
+                if (err == (int)(IoTConnectivityError.Iotivity))
+                {
+                    RemoteResponse response = new RemoteResponse();
+                    response.Result = ResponseCode.Forbidden;
+                    response.Representation = null;
+                    tcsRemoteResponse.TrySetResult(response);
+                }
+                else if (responseHandle != IntPtr.Zero)
                 {
                     try
                     {
@@ -707,7 +718,7 @@ namespace Tizen.Network.IoTConnectivity
                 Log.Error(IoTConnectivityErrorFactory.LogTag, "Failed to get device id");
                 throw IoTConnectivityErrorFactory.GetException(ret);
             }
-                       IntPtr deviceName;
+            IntPtr deviceName;
             ret = Interop.IoTConnectivity.Client.RemoteResource.GetDeviceName(_remoteResourceHandle, out deviceName);
             if (ret != (int)IoTConnectivityError.None)
             {
index 151ce0f..a17c30d 100755 (executable)
@@ -9,7 +9,7 @@
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// RemoteResponse Class
+    /// This class represents remote response.
     /// </summary>
     public class RemoteResponse
     {
index 444dea7..1a5af8a 100755 (executable)
@@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Class containing representation of a resource
+    /// Class containing representation of a resource.
     /// </summary>
     public class Representation : IDisposable
     {
index eeefc63..929fb45 100755 (executable)
@@ -11,12 +11,16 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Class respresenting Request to a resource
+    /// Class respresenting request to a resource.
     /// </summary>
     public class Request : IDisposable
     {
         private bool _disposed = false;
 
+        internal Request()
+        {
+        }
+
         ~Request()
         {
             Dispose(false);
index af34202..8fef403 100755 (executable)
@@ -13,6 +13,9 @@ using System.Runtime.InteropServices;
 
 namespace Tizen.Network.IoTConnectivity
 {
+    /// <summary>
+    /// Abstract class respresenting a resource.
+    /// </summary>
     public abstract class Resource : IDisposable
     {
         private IntPtr _resourceHandle = IntPtr.Zero;
@@ -27,7 +30,7 @@ namespace Tizen.Network.IoTConnectivity
         /// <param name="types">Resource types</param>
         /// <param name="interfaces">Resource interfaces</param>
         /// <param name="policy">Policy input of the resoruce</param>
-        public Resource(string uri, ResourceTypes types, ResourceInterfaces interfaces, ResourcePolicy policy)
+        protected Resource(string uri, ResourceTypes types, ResourceInterfaces interfaces, ResourcePolicy policy)
         {
             UriPath = uri;
             Types = types;
@@ -112,25 +115,25 @@ namespace Tizen.Network.IoTConnectivity
         /// Called on the get event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public abstract Response OnGet(Request request);
+        protected abstract Response OnGet(Request request);
 
         /// <summary>
         /// Called on the put event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public abstract Response OnPut(Request request);
+        protected abstract Response OnPut(Request request);
 
         /// <summary>
         /// Called on the post event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public abstract Response OnPost(Request request);
+        protected abstract Response OnPost(Request request);
 
         /// <summary>
         /// Called on the delete event.
         /// </summary>
         /// <param name="request">Request.</param>
-        public abstract Response OnDelete(Request request);
+        protected abstract Response OnDelete(Request request);
 
         /// <summary>
         /// Called on the observing event.
@@ -138,7 +141,7 @@ namespace Tizen.Network.IoTConnectivity
         /// <param name="request">Request.</param>
         /// <param name="policy">Policy.</param>
         /// <param name="observeId">Observe identifier.</param>
-        public abstract bool OnObserving(Request request, ObserveType type, int observeId);
+        protected abstract bool OnObserving(Request request, ObserveType type, int observeId);
 
         public void Dispose()
         {
index 3e204d8..0d37588 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// ResourceFoundEventArgs class. This class is an event arguments of the ResourceFound event.
+    /// This class is an event arguments of the ResourceFound event.
     /// </summary>
     public class ResourceFoundEventArgs : EventArgs
     {
+        internal ResourceFoundEventArgs() { }
+
         /// <summary>
         /// RequestId property.
         /// </summary>
index fa481de..055f24d 100755 (executable)
@@ -15,7 +15,7 @@ using Tizen;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Class representing Resource options
+    /// This class represents resource options.
     /// </summary>
     public class ResourceOptions : IDictionary<ushort, string>, IDisposable
     {
index 1f0e5e1..10a872c 100755 (executable)
@@ -14,7 +14,7 @@ using System.Runtime.InteropServices;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Class to manage query of request
+    /// Class to manage query of request.
     /// </summary>
     public class ResourceQuery : IDictionary<string, string>, IDisposable
     {
index cf5a3dd..bab888e 100755 (executable)
@@ -11,7 +11,7 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// Class representing Response from a resource
+    /// This class represents response from a resource.
     /// </summary>
     public class Response : IDisposable
     {
index 1801353..db72864 100755 (executable)
@@ -11,10 +11,12 @@ using System;
 namespace Tizen.Network.IoTConnectivity
 {
     /// <summary>
-    /// StateChangedEventArgs class. This class is an event arguments of the StateChanged event.
+    /// This class is an event arguments of the StateChanged event.
     /// </summary>
     public class StateChangedEventArgs : EventArgs
     {
+        internal StateChangedEventArgs() { }
+
         /// <summary>
         /// State property.
         /// </summary>
index 298ef09..d20defe 100755 (executable)
@@ -1,5 +1,4 @@
-%define dllpath %{_libdir}/mono/tizen
-%define dllname Tizen.Network.IoTConnectivity.dll
+%define BUILDCONF Debug
 
 Name:       csapi-network-iotconnectivity
 Summary:    Tizen IoT Connectivity API for C#
@@ -12,28 +11,14 @@ Source0:    %{name}-%{version}.tar.gz
 Source1:    %{name}.manifest
 Source2:    %{name}.pc.in
 
-# TODO: replace mono-compiler, mono-devel to mcs, mono-shlib-cop
 BuildRequires: mono-compiler
 BuildRequires: mono-devel
-# TODO: replace mono-core to gacutil.
-#       mono-core should provide the symbol 'gacutil'
-Requires(post): mono-core
-Requires(postun): mono-core
-
-# P/Invoke Dependencies
 BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(capi-appfw-application)
-
-# P/Invoke Runtime Dependencies
-# TODO: It should be removed after fix tizen-rpm-config
-Requires: glib-2.0
 BuildRequires: pkgconfig(iotcon)
-# DLL Dependencies
 BuildRequires: pkgconfig(csapi-tizen)
-#BuildRequires: ...
 
 %description
-Tizen API for C#
+Tizen IoTConnectivity API for C#
 
 %package devel
 Summary:    Development package for %{name}
@@ -49,33 +34,21 @@ Development package for %{name}
 cp %{SOURCE1} .
 
 %build
-# build dll
-make
-
-# check p/invoke
-if [ -x %{dllname} ]; then
-  RET=`mono-shlib-cop %{dllname}`; \
-  CNT=`echo $RET | grep -E "^error:" | wc -l`; \
-  if [ $CNT -gt 0 ]; then exit 1; fi
-fi
+xbuild Tizen.Network.IoTConnectivity/Tizen.Network.IoTConnectivity.csproj /p:Configuration=%{BUILDCONF}
 
 %install
-# copy dll
-mkdir -p %{buildroot}%{dllpath}
-install -p -m 644 %{dllname} %{buildroot}%{dllpath}
+gacutil -i Tizen.Network.IoTConnectivity/bin/%{BUILDCONF}/Tizen.Network.IoTConnectivity.dll -root "%{buildroot}%{_libdir}" -package tizen
 
 # generate pkgconfig
 mkdir -p %{buildroot}%{_libdir}/pkgconfig
-sed -e "s#@version@#%{version}#g" \
-    -e "s#@dllpath@#%{dllpath}#g" \
-    -e "s#@dllname@#%{dllname}#g" \
+sed -e "s#@name@#%{name}#g" \
+    -e "s#@version@#%{version}#g" \
+    -e "s#@libs@#%{pc_libs}#g" \
     %{SOURCE2} > %{buildroot}%{_libdir}/pkgconfig/%{name}.pc
 
-%post
-gacutil -i %{dllpath}/%{dllname}
-
 %files
-%{dllpath}/%{dllname}
+%manifest %{name}.manifest
+%{_libdir}/mono/
 
 %files devel
 %{_libdir}/pkgconfig/%{name}.pc