- 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
- NSCacheElement * prev = list->head;\r
- NSCacheElement * del = list->head;\r
-\r
- NSCacheType type = list->cacheType;\r
-\r
- if(!del)\r