-void NSConsumerRemoveMessageStore(NSCacheElement * ele, NSStoreMessage * msg)
-{
- NSOICFree(ele);
- NSOICFree(msg);
-}
-
-NSResult NSConsumerCacheWriteMessage(NSCacheList * list, NSCacheElement * newObj)
-{
- NS_VERIFY_NOT_NULL(list, NS_ERROR);
- NS_VERIFY_NOT_NULL(newObj, NS_ERROR);
-
- pthread_mutex_t * mutex = NSGetCacheMutex();
-
- NSMessage * newMsgObj = ((NSStoreMessage *)newObj->data)->msg;
-
- char msgId[NS_DEVICE_ID_LENGTH] = {0, };
- snprintf(msgId, NS_DEVICE_ID_LENGTH, "%lld", (long long int)newMsgObj->messageId);
- NSCacheElement * it = NSStorageRead(list, msgId);
-
- if (it)
- {
- NS_LOG(DEBUG, "Update message status.");
- pthread_mutex_lock(mutex);
- NSStoreMessage * sMsgObj = (NSStoreMessage *) it->data;
- if(sMsgObj->status == ((NSStoreMessage *)newObj->data)->status)
- {
- NS_LOG (DEBUG, "Already receive message");
- pthread_mutex_unlock(mutex);
- return NS_ERROR;
- }
-
- sMsgObj->status = ((NSStoreMessage *)newObj->data)->status;
- pthread_mutex_unlock(mutex);
- return NS_OK;
- }
-
- NS_LOG(DEBUG, "Add message at storage.");
- NSStoreMessage * sMsgObj = (NSStoreMessage *) OICMalloc(sizeof(NSStoreMessage));
- NS_VERIFY_NOT_NULL(sMsgObj, NS_ERROR);
-
- NSCacheElement * obj = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(obj, NS_ERROR, NSOICFree(sMsgObj));
-
- sMsgObj->status = NS_SYNC_UNREAD;
- sMsgObj->msg = (void *) NSCopyMessage(newMsgObj);
- NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(sMsgObj->msg, NS_ERROR,
- NSConsumerRemoveMessageStore(obj, sMsgObj));
-
- obj->next = NULL;
- obj->data = (NSCacheData *) sMsgObj;
-
- pthread_mutex_lock(mutex);
- if (!list->head)
- {
- list->head = obj;
- list->tail = obj;
- pthread_mutex_unlock(mutex);
- return NS_OK;
- }
-
- (list->tail)->next = obj;
- list->tail = obj;
- pthread_mutex_unlock(mutex);
-
- return NS_OK;
-}
-