#include "NSProviderMemoryCache.h"\r
#include <string.h>\r
\r
-NSCacheList * NSStorageCreate()\r
+#define NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj) \\r
+ { \\r
+ if (it) \\r
+ { \\r
+ NS_LOG(DEBUG, "already registered for topic name"); \\r
+ NSOICFree(topicData->topicName); \\r
+ NSOICFree(topicData); \\r
+ NSOICFree(newObj); \\r
+ pthread_mutex_unlock(&NSCacheMutex); \\r
+ return NS_FAIL; \\r
+ } \\r
+ }\r
+\r
+NSCacheList * NSProviderStorageCreate()\r
{\r
pthread_mutex_lock(&NSCacheMutex);\r
NSCacheList * newList = (NSCacheList *) OICMalloc(sizeof(NSCacheList));\r
+\r
if (!newList)\r
{\r
pthread_mutex_unlock(&NSCacheMutex);\r
return newList;\r
}\r
\r
-NSCacheElement * NSStorageRead(NSCacheList * list, const char * findId)\r
+NSCacheElement * NSProviderStorageRead(NSCacheList * list, const char * findId)\r
{\r
pthread_mutex_lock(&NSCacheMutex);\r
\r
NSCacheElement * next = NULL;\r
NSCacheType type = list->cacheType;\r
\r
- NS_LOG_V(DEBUG, "Find ID - %s", findId);\r
+ NS_LOG_V(INFO_PRIVATE, "Find ID - %s", findId);\r
\r
while (iter)\r
{\r
return NS_ERROR;\r
}\r
\r
- NSCacheElement * it = NSStorageRead(list, id);\r
+ NSCacheElement * it = NSProviderStorageRead(list, id);\r
\r
if (it)\r
{\r
{\r
NS_LOG(DEBUG, "Update Data - IN");\r
\r
- NS_LOG_V(DEBUG, "currData_ID = %s", itData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "currData_ID = %s", itData->id);\r
NS_LOG_V(DEBUG, "currData_MsgObID = %d", itData->messageObId);\r
NS_LOG_V(DEBUG, "currData_SyncObID = %d", itData->syncObId);\r
NS_LOG_V(DEBUG, "currData_Cloud_MsgObID = %d", itData->remote_messageObId);\r
return NS_ERROR;\r
}\r
\r
-NSResult NSStorageWrite(NSCacheList * list, NSCacheElement * newObj)\r
+NSResult NSProviderStorageWrite(NSCacheList * list, NSCacheElement * newObj)\r
{\r
pthread_mutex_lock(&NSCacheMutex);\r
\r
NS_LOG(DEBUG, "Type is SUBSCRIBER");\r
\r
NSCacheSubData * subData = (NSCacheSubData *) newObj->data;\r
- NSCacheElement * it = NSStorageRead(list, subData->id);\r
+ NSCacheElement * it = NSProviderStorageRead(list, subData->id);\r
\r
if (it)\r
{\r
{\r
NS_LOG(DEBUG, "Update Data - IN");\r
\r
- NS_LOG_V(DEBUG, "currData_ID = %s", itData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "currData_ID = %s", itData->id);\r
NS_LOG_V(DEBUG, "currData_MsgObID = %d", itData->messageObId);\r
NS_LOG_V(DEBUG, "currData_SyncObID = %d", itData->syncObId);\r
NS_LOG_V(DEBUG, "currData_Cloud_MsgObID = %d", itData->remote_messageObId);\r
NS_LOG_V(DEBUG, "currData_Cloud_SyncObID = %d", itData->remote_syncObId);\r
NS_LOG_V(DEBUG, "currData_IsWhite = %d", itData->isWhite);\r
\r
- NS_LOG_V(DEBUG, "subData_ID = %s", subData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "subData_ID = %s", subData->id);\r
NS_LOG_V(DEBUG, "subData_MsgObID = %d", subData->messageObId);\r
NS_LOG_V(DEBUG, "subData_SyncObID = %d", subData->syncObId);\r
NS_LOG_V(DEBUG, "subData_Cloud_MsgObID = %d", subData->remote_messageObId);\r
}\r
\r
NS_LOG(DEBUG, "Update Data - OUT");\r
-\r
+ NSOICFree(subData);\r
+ NSOICFree(newObj);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_OK;\r
}\r
}\r
\r
}\r
- else if(type == NS_PROVIDER_CACHE_REGISTER_TOPIC)\r
+ else if (type == NS_PROVIDER_CACHE_REGISTER_TOPIC)\r
{\r
NS_LOG(DEBUG, "Type is REGITSTER TOPIC");\r
\r
NSCacheTopicData * topicData = (NSCacheTopicData *) newObj->data;\r
- NSCacheElement * it = NSStorageRead(list, topicData->topicName);\r
+ NSCacheElement * it = NSProviderStorageRead(list, topicData->topicName);\r
\r
- if (it)\r
- {\r
- NS_LOG(DEBUG, "already registered for topic name");\r
- pthread_mutex_unlock(&NSCacheMutex);\r
- return NS_FAIL;\r
- }\r
+ NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj);\r
}\r
- else if(type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME)\r
+ else if (type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME)\r
{\r
NS_LOG(DEBUG, "Type is REGITSTER TOPIC");\r
\r
NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) newObj->data;\r
- NSCacheElement * it = NSStorageRead(list, topicData->topicName);\r
+ NSCacheElement * it = NSProviderStorageRead(list, topicData->topicName);\r
\r
- if (it)\r
- {\r
- NS_LOG(DEBUG, "already registered for topic name");\r
- pthread_mutex_unlock(&NSCacheMutex);\r
- return NS_FAIL;\r
- }\r
+ NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj);\r
}\r
- else if(type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID)\r
+ else if (type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID)\r
{\r
NS_LOG(DEBUG, "Type is REGITSTER TOPIC");\r
\r
NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) newObj->data;\r
- NSCacheElement * it = NSStorageRead(list, topicData->id);\r
+ NSCacheElement * it = NSProviderStorageRead(list, topicData->id);\r
\r
- if (it)\r
- {\r
- NS_LOG(DEBUG, "already registered for topic name");\r
- pthread_mutex_unlock(&NSCacheMutex);\r
- return NS_FAIL;\r
- }\r
+ NS_PROVIDER_DELETE_REGISTERED_TOPIC_DATA(it, topicData, newObj);\r
}\r
\r
if (list->head == NULL)\r
return NS_OK;\r
}\r
\r
-NSResult NSStorageDestroy(NSCacheList * list)\r
+NSResult NSProviderStorageDestroy(NSCacheList * list)\r
{\r
NSCacheElement * iter = list->head;\r
NSCacheElement * next = NULL;\r
{\r
next = (NSCacheElement *) iter->next;\r
NSProviderDeleteCacheData(type, iter->data);\r
- OICFree(iter);\r
+ NSOICFree(iter);\r
iter = next;\r
}\r
\r
- OICFree(list);\r
+ NSOICFree(list);\r
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
return false;\r
}\r
\r
- NS_LOG_V(DEBUG, "Data(compData) = [%s]", id);\r
+ NS_LOG_V(INFO_PRIVATE, "Data(compData) = [%s]", id);\r
\r
if (type == NS_PROVIDER_CACHE_SUBSCRIBER)\r
{\r
NSCacheSubData * subData = (NSCacheSubData *) data;\r
\r
- NS_LOG_V(DEBUG, "Data(subData) = [%s]", subData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "Data(subData) = [%s]", subData->id);\r
\r
if (strcmp(subData->id, id) == 0)\r
{\r
{\r
NSCacheSubData * subData = (NSCacheSubData *) data;\r
\r
- NS_LOG_V(DEBUG, "Data(subData) = [%s]", subData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "Data(subData) = [%s]", subData->id);\r
\r
OCObservationId currID = *id;\r
\r
{\r
NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) data;\r
\r
- NS_LOG_V(DEBUG, "Data(topicData) = [%s]", topicData->id);\r
+ NS_LOG_V(INFO_PRIVATE, "Data(topicData) = [%s]", topicData->id);\r
\r
if (strcmp(topicData->id, id) == 0)\r
{\r
NSCacheSubData * subData = (NSCacheSubData *) data;\r
\r
(subData->id)[0] = '\0';\r
- OICFree(subData);\r
+ NSOICFree(subData);\r
return NS_OK;\r
}\r
- else if(type == NS_PROVIDER_CACHE_REGISTER_TOPIC)\r
+ else if (type == NS_PROVIDER_CACHE_REGISTER_TOPIC)\r
{\r
\r
NSCacheTopicData * topicData = (NSCacheTopicData *) data;\r
NS_LOG_V(DEBUG, "topicData->topicName = %s, topicData->state = %d", topicData->topicName,\r
(int)topicData->state);\r
\r
- OICFree(topicData->topicName);\r
+ NSOICFree(topicData->topicName);\r
+ NSOICFree(topicData);\r
}\r
- else if(type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME ||\r
+ else if (type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_NAME ||\r
type == NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID)\r
{\r
NSCacheTopicSubData * topicData = (NSCacheTopicSubData *) data;\r
- OICFree(topicData->topicName);\r
+ NSOICFree(topicData->topicName);\r
+ NSOICFree(topicData);\r
}\r
\r
return NS_OK;\r
}\r
\r
-NSResult NSStorageDelete(NSCacheList * list, const char * delId)\r
+NSResult NSProviderStorageDelete(NSCacheList * list, const char * delId)\r
{\r
pthread_mutex_lock(&NSCacheMutex);\r
NSCacheElement * prev = list->head;\r
\r
NSCacheType type = list->cacheType;\r
\r
- if(!del)\r
+ if (!del)\r
{\r
NS_LOG(DEBUG, "list head is NULL");\r
pthread_mutex_unlock(&NSCacheMutex);\r
\r
list->head = del->next;\r
NSProviderDeleteCacheData(type, del->data);\r
- OICFree(del);\r
+ NSOICFree(del);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_OK;\r
}\r
}\r
\r
del = del->next;\r
+\r
while (del)\r
{\r
if (NSProviderCompareIdCacheData(type, del->data, delId))\r
\r
prev->next = del->next;\r
NSProviderDeleteCacheData(type, del->data);\r
- OICFree(del);\r
+ NSOICFree(del);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_OK;\r
}\r
prev = del;\r
del = del->next;\r
}\r
+\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r
\r
NSCacheElement * iter = regTopicList->head;\r
\r
- if(!iter)\r
+ if (!iter)\r
{\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NULL;\r
while (iter)\r
{\r
NSCacheTopicData * curr = (NSCacheTopicData *) iter->data;\r
-\r
newTopic = (NSTopicLL *) OICMalloc(sizeof(NSTopicLL));\r
+\r
+ if (!newTopic)\r
+ {\r
+ pthread_mutex_unlock(&NSCacheMutex);\r
+ return NULL;\r
+ }\r
+\r
newTopic->state = curr->state;\r
newTopic->next = NULL;\r
newTopic->topicName = OICStrdup(curr->topicName);\r
\r
- if(!topics)\r
+ if (!topics)\r
{\r
iterTopic = topics = newTopic;\r
}\r
}\r
\r
NSTopicLL * NSProviderGetConsumerTopicsCacheData(NSCacheList * regTopicList,\r
- NSCacheList * conTopicList, char *consumerId)\r
+ NSCacheList * conTopicList, const char * consumerId)\r
{\r
NS_LOG(DEBUG, "NSProviderGetConsumerTopicsCacheData - IN");\r
\r
pthread_mutex_lock(&NSCacheMutex);\r
NSTopicLL * topics = NSProviderGetTopicsCacheData(regTopicList);\r
\r
- if(!topics)\r
+ if (!topics)\r
{\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NULL;\r
NSCacheElement * iter = conTopicList->head;\r
conTopicList->cacheType = NS_PROVIDER_CACHE_CONSUMER_TOPIC_CID;\r
\r
- while(iter)\r
+ while (iter)\r
{\r
NSCacheTopicSubData * curr = (NSCacheTopicSubData *)iter->data;\r
\r
- NS_LOG_V(DEBUG, "curr->id = %s", curr->id);\r
- NS_LOG_V(DEBUG, "curr->topicName = %s", curr->topicName);\r
-\r
- if(curr && strcmp(curr->id, consumerId) == 0)\r
+ if (curr && strcmp(curr->id, consumerId) == 0)\r
{\r
+ NS_LOG_V(INFO_PRIVATE, "curr->id = %s", curr->id);\r
+ NS_LOG_V(DEBUG, "curr->topicName = %s", curr->topicName);\r
NSTopicLL * topicIter = topics;\r
- while(topicIter)\r
+\r
+ while (topicIter)\r
{\r
- if(strcmp(topicIter->topicName, curr->topicName) == 0)\r
+ if (strcmp(topicIter->topicName, curr->topicName) == 0)\r
{\r
topicIter->state = NS_TOPIC_SUBSCRIBED;\r
break;\r
}\r
+\r
topicIter = topicIter->next;\r
}\r
}\r
{\r
pthread_mutex_lock(&NSCacheMutex);\r
\r
- if(!conTopicList || !cId || !topicName)\r
+ if (!conTopicList || !cId || !topicName)\r
{\r
pthread_mutex_unlock(&NSCacheMutex);\r
return false;\r
}\r
\r
NSCacheElement * iter = conTopicList;\r
- while(iter)\r
+\r
+ while (iter)\r
{\r
NSCacheTopicSubData * curr = (NSCacheTopicSubData *) iter->data;\r
\r
- if( (strcmp(curr->id, cId) == 0) && (strcmp(curr->topicName, topicName) == 0) )\r
+ if ( (strcmp(curr->id, cId) == 0) && (strcmp(curr->topicName, topicName) == 0) )\r
{\r
pthread_mutex_unlock(&NSCacheMutex);\r
return true;\r
}\r
+\r
iter = iter->next;\r
}\r
\r
char * cId = topicSubData->id;\r
char * topicName = topicSubData->topicName;\r
\r
- if(!conTopicList || !cId || !topicName)\r
+ if (!conTopicList || !cId || !topicName)\r
{\r
- return NS_ERROR;\r
pthread_mutex_unlock(&NSCacheMutex);\r
+ return NS_ERROR;\r
}\r
\r
NSCacheElement * prev = conTopicList->head;\r
\r
NSCacheType type = conTopicList->cacheType;\r
\r
- if(!del)\r
+ if (!del)\r
{\r
NS_LOG(DEBUG, "list head is NULL");\r
+ pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r
\r
NSCacheTopicSubData * curr = (NSCacheTopicSubData *) del->data;\r
- NS_LOG_V(DEBUG, "compareid = %s", cId);\r
+ NS_LOG_V(INFO_PRIVATE, "compareid = %s", cId);\r
NS_LOG_V(DEBUG, "comparetopicName = %s", topicName);\r
- NS_LOG_V(DEBUG, "curr->id = %s", curr->id);\r
+ NS_LOG_V(INFO_PRIVATE, "curr->id = %s", curr->id);\r
NS_LOG_V(DEBUG, "curr->topicName = %s", curr->topicName);\r
\r
- if( (strncmp(curr->id, cId, NS_UUID_STRING_SIZE) == 0) && (strcmp(curr->topicName, topicName) == 0) )\r
+ if ( (strncmp(curr->id, cId, NS_UUID_STRING_SIZE) == 0) &&\r
+ (strcmp(curr->topicName, topicName) == 0) )\r
{\r
if (del == conTopicList->head) // first object\r
{\r
\r
conTopicList->head = del->next;\r
NSProviderDeleteCacheData(type, del->data);\r
- OICFree(del);\r
+ NSOICFree(del);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_OK;\r
}\r
\r
curr = NULL;\r
del = del->next;\r
+\r
while (del)\r
{\r
curr = (NSCacheTopicSubData *) del->data;\r
- if( (strncmp(curr->id, cId, NS_UUID_STRING_SIZE) == 0) && (strcmp(curr->topicName, topicName) == 0) )\r
+ if ( (strncmp(curr->id, cId, NS_UUID_STRING_SIZE) == 0) &&\r
+ (strcmp(curr->topicName, topicName) == 0) )\r
{\r
if (del == conTopicList->tail) // delete object same to last object\r
{\r
\r
prev->next = del->next;\r
NSProviderDeleteCacheData(type, del->data);\r
- OICFree(del);\r
+ NSOICFree(del);\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_OK;\r
}\r
prev = del;\r
del = del->next;\r
}\r
+\r
pthread_mutex_unlock(&NSCacheMutex);\r
return NS_FAIL;\r
}\r