From ddca2670522ad2bb0a1467a6892d5f2d259da80b Mon Sep 17 00:00:00 2001 From: "jaesick.shin" Date: Thu, 20 Oct 2016 14:39:33 +0900 Subject: [PATCH] Add macro about registered topic data. This patch include, It added a macro to delete the data that was registered topic. Change-Id: Ie83b23b7276bb5aaf07388c0faba34b47bce7f16 Signed-off-by: jaesick.shin Reviewed-on: https://gerrit.iotivity.org/gerrit/13543 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../src/provider/NSProviderMemoryCache.c | 44 ++++++++-------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/service/notification/src/provider/NSProviderMemoryCache.c b/service/notification/src/provider/NSProviderMemoryCache.c index 90da361..de28f24 100644 --- a/service/notification/src/provider/NSProviderMemoryCache.c +++ b/service/notification/src/provider/NSProviderMemoryCache.c @@ -21,6 +21,19 @@ #include "NSProviderMemoryCache.h" #include +#define NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj) \ + { \ + if (it) \ + { \ + NS_LOG(DEBUG, "already registered for topic name"); \ + OICFree(topicData->topicName); \ + OICFree(topicData); \ + OICFree(newObj); \ + pthread_mutex_unlock(&NSCacheMutex); \ + return NS_FAIL; \ + } \ + } + NSCacheList * NSProviderStorageCreate() { pthread_mutex_lock(&NSCacheMutex); @@ -202,15 +215,7 @@ NSResult NSProviderStorageWrite(NSCacheList * list, NSCacheElement * newObj) NSCacheTopicData * topicData = (NSCacheTopicData *) newObj->data; NSCacheElement * it = NSProviderStorageRead(list, topicData->topicName); - if (it) - { - NS_LOG(DEBUG, "already registered for topic name"); - OICFree(topicData->topicName); - OICFree(topicData); - OICFree(newObj); - pthread_mutex_unlock(&NSCacheMutex); - return NS_FAIL; - } + NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj); } else if (type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME) { @@ -219,15 +224,7 @@ NSResult NSProviderStorageWrite(NSCacheList * list, NSCacheElement * newObj) NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) newObj->data; NSCacheElement * it = NSProviderStorageRead(list, topicData->topicName); - if (it) - { - NS_LOG(DEBUG, "already registered for topic name"); - OICFree(topicData->topicName); - OICFree(topicData); - OICFree(newObj); - pthread_mutex_unlock(&NSCacheMutex); - return NS_FAIL; - } + NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj); } else if (type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID) { @@ -236,15 +233,7 @@ NSResult NSProviderStorageWrite(NSCacheList * list, NSCacheElement * newObj) NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) newObj->data; NSCacheElement * it = NSProviderStorageRead(list, topicData->id); - if (it) - { - NS_LOG(DEBUG, "already registered for topic name"); - OICFree(topicData->topicName); - OICFree(topicData); - OICFree(newObj); - pthread_mutex_unlock(&NSCacheMutex); - return NS_FAIL; - } + NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj); } if (list->head == NULL) @@ -279,7 +268,6 @@ NSResult NSProviderStorageDestroy(NSCacheList * list) return NS_OK; } - bool NSIsSameObId(NSCacheSubData * data, OCObservationId id) { if (id == data->messageObId || id == data->syncObId || id == data->remote_messageObId || -- 2.7.4