Add destructor to PrimitiveServerResource to unregister resource automatically
authorcoderhyme <jhyo.kim@samsung.com>
Sat, 13 Jun 2015 04:39:54 +0000 (13:39 +0900)
committerUze Choi <uzchoi@samsung.com>
Wed, 17 Jun 2015 09:10:25 +0000 (09:10 +0000)
Change-Id: I31814a6c720154bdbd2eebeb20c9b3204af89940
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1307
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/basis/serverBuilder/include/PrimitiveServerResource.h
service/basis/serverBuilder/src/PrimitiveServerResource.cpp

index 87e3a0d..d537b54 100644 (file)
@@ -108,6 +108,8 @@ namespace OIC
             PrimitiveServerResource& operator=(PrimitiveServerResource&&) = delete;
             PrimitiveServerResource& operator=(const PrimitiveServerResource&) = delete;
 
+            ~PrimitiveServerResource();
+
             template< typename T >
             void setAttribute(const std::string& key, const T &value)
             {
index 3fa0ae0..dc43b3b 100644 (file)
@@ -158,6 +158,21 @@ namespace OIC
             return server;
         }
 
+
+        PrimitiveServerResource::~PrimitiveServerResource()
+        {
+            if (m_resourceHandle)
+            {
+                try
+                {
+                    OC::OCPlatform::unregisterResource(m_resourceHandle);
+                }
+                catch (...)
+                {
+                }
+            }
+        }
+
         bool PrimitiveServerResource::hasAttribute(const std::string& key) const
         {
             WeakGuard lock(*this);