Remove not required function.
authorjaesick.shin <jaesick.shin@samsung.com>
Tue, 23 Aug 2016 05:44:00 +0000 (14:44 +0900)
committerUze Choi <uzchoi@samsung.com>
Tue, 23 Aug 2016 11:23:26 +0000 (11:23 +0000)
this patch included
remove not required function in NSProviderMemoryCache.
and refactoring code about related NSStorageDelete function.

Change-Id: Iee2e6bbfb149a4cf3d1a0908974d0c752e54be0b
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10765
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/src/common/NSConstants.h
service/notification/src/provider/NSProviderMemoryCache.c
service/notification/src/provider/NSProviderSubscription.c

index 8372d45..d05a5e5 100644 (file)
@@ -263,6 +263,7 @@ typedef enum eCacheType
     NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME = 1002,
     NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID = 1003,
     NS_PROVIDER_CACHE_REGISTER_TOPIC = 1004,
+    NS_PROVIDER_CACHE_SUBSCRIBER_OBSERVE_ID = 1005,
 
     NS_CONSUMER_CACHE_PROVIDER = 2000,
     NS_CONSUMER_CACHE_MESSAGE = 2001,
index 1f79fd5..f028fff 100644 (file)
@@ -268,6 +268,18 @@ NSResult NSStorageDestroy(NSCacheList * list)
     return NS_OK;\r
 }\r
 \r
+\r
+bool NSIsSameObId(NSCacheSubData * data, OCObservationId id)\r
+{\r
+    if (id == data->messageObId || id == data->syncObId || id == data->remote_messageObId ||\r
+                id == data->remote_syncObId)\r
+    {\r
+        return true;\r
+    }\r
+\r
+    return false;\r
+}\r
+\r
 bool NSProviderCompareIdCacheData(NSCacheType type, void * data, const char * id)\r
 {\r
     NS_LOG(DEBUG, "NSProviderCompareIdCacheData - IN");\r
@@ -294,6 +306,23 @@ bool NSProviderCompareIdCacheData(NSCacheType type, void * data, const char * id
         NS_LOG(DEBUG, "Message Data is Not Same");\r
         return false;\r
     }\r
+    else if (type == NS_PROVIDER_CACHE_SUBSCRIBER_OBSERVE_ID)\r
+    {\r
+        NSCacheSubData * subData = (NSCacheSubData *) data;\r
+\r
+        NS_LOG_V(DEBUG, "Data(subData) = [%s]", subData->id);\r
+\r
+        OCObservationId currID = *id;\r
+\r
+        if (NSIsSameObId(subData, currID))\r
+        {\r
+            NS_LOG(DEBUG, "SubData is Same");\r
+            return true;\r
+        }\r
+\r
+        NS_LOG(DEBUG, "Message Data is Not Same");\r
+        return false;\r
+    }\r
     else if (type == NS_PROVIDER_CACHE_REGISTER_TOPIC)\r
     {\r
         NSCacheTopicData * topicData = (NSCacheTopicData *) data;\r
@@ -352,7 +381,7 @@ NSResult NSProviderDeleteCacheData(NSCacheType type, void * data)
         return NS_ERROR;\r
     }\r
 \r
-    if (type == NS_PROVIDER_CACHE_SUBSCRIBER)\r
+    if (type == NS_PROVIDER_CACHE_SUBSCRIBER || type == NS_PROVIDER_CACHE_SUBSCRIBER_OBSERVE_ID)\r
     {\r
         NSCacheSubData * subData = (NSCacheSubData *) data;\r
 \r
@@ -379,83 +408,6 @@ NSResult NSProviderDeleteCacheData(NSCacheType type, void * data)
     return NS_OK;\r
 }\r
 \r
-bool NSIsSameObId(NSCacheSubData * data, OCObservationId id)\r
-{\r
-    if (id == data->messageObId || id == data->syncObId || id == data->remote_messageObId ||\r
-                id == data->remote_syncObId)\r
-    {\r
-        return true;\r
-    }\r
-\r
-    return false;\r
-}\r
-\r
-NSResult NSProviderDeleteSubDataFromObId(NSCacheList * list, OCObservationId id)\r
-{\r
-    if(!list || !list->head)\r
-    {\r
-        NS_LOG(INFO, "list is NULL");\r
-        return NS_FAIL;\r
-    }\r
-\r
-    pthread_mutex_lock(&NSCacheMutex);\r
-    NSCacheElement * prev = list->head;\r
-    NSCacheElement * del = list->head;\r
-\r
-    NSCacheType type = list->cacheType;\r
-\r
-    bool isDelete = true;\r
-\r
-    while(isDelete)\r
-    {\r
-        NSCacheSubData * curr = (NSCacheSubData *)del->data;\r
-\r
-        isDelete = false;\r
-\r
-        if (NSIsSameObId(curr, id))\r
-        {\r
-            if (del == list->head) // first object\r
-            {\r
-                if (del == list->tail) // first object (one object)\r
-                {\r
-                    list->tail = del->next;\r
-                }\r
-\r
-                list->head = del->next;\r
-\r
-                NSProviderDeleteCacheData(type, del->data);\r
-                OICFree(del);\r
-                isDelete = true;\r
-            }\r
-        }\r
-        else\r
-        {\r
-            del = del->next;\r
-            while (del)\r
-            {\r
-                if (NSIsSameObId(curr, id))\r
-                {\r
-                    if (del == list->tail) // delete object same to last object\r
-                    {\r
-                        list->tail = prev;\r
-                    }\r
-\r
-                    prev->next = del->next;\r
-                    NSProviderDeleteCacheData(type, del->data);\r
-                    OICFree(del);\r
-                    isDelete = true;\r
-                    break;\r
-                }\r
-\r
-                prev = del;\r
-                del = del->next;\r
-            }\r
-        }\r
-    }\r
-    pthread_mutex_unlock(&NSCacheMutex);\r
-    return NS_OK;\r
-}\r
-\r
 NSResult NSStorageDelete(NSCacheList * list, const char * delId)\r
 {\r
     pthread_mutex_lock(&NSCacheMutex);\r
index 29f2223..17a0f3b 100644 (file)
@@ -229,7 +229,11 @@ void NSHandleUnsubscription(OCEntityHandlerRequest *entityHandlerRequest)
 {\r
     NS_LOG(DEBUG, "NSHandleUnsubscription - IN");\r
 \r
-    NSProviderDeleteSubDataFromObId(consumerSubList, entityHandlerRequest->obsInfo.obsId);\r
+    consumerSubList->cacheType = NS_PROVIDER_CACHE_SUBSCRIBER_OBSERVE_ID;\r
+\r
+    while(NSStorageDelete(consumerSubList, (unsigned char *)\r
+            &(entityHandlerRequest->obsInfo.obsId)) != NS_FAIL);\r
+    consumerSubList->cacheType = NS_PROVIDER_CACHE_SUBSCRIBER;\r
 \r
     NSFreeOCEntityHandlerRequest(entityHandlerRequest);\r
 \r