[Internal: merge sync-agent]
[platform/core/system/sync-agent.git] / src / framework / data-adapter / interface_item.c
index 1f2007a..5fc308c 100755 (executable)
@@ -47,50 +47,52 @@ EXPORT_API sync_agent_da_return_e sync_agent_create_item(sync_agent_da_item_s **
        }
 
        _EXTERN_FUNC_EXIT;
-
        return SYNC_AGENT_DA_SUCCESS;
 }
 
 EXPORT_API sync_agent_da_return_e sync_agent_add_item(sync_agent_da_item_s * sync_agent_item, char **item_id, int use_changelog)
 {
        _EXTERN_FUNC_ENTER;
-
        retvm_if(sync_agent_item == NULL, SYNC_AGENT_DA_ERRORS, "sync_agent_da_item_s is NULL !!");
 
        sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
+       if (use_changelog == 1) {
+               ret = sync_agent_changelog_add_item_new(sync_agent_item, item_id);
+               if (ret != SYNC_AGENT_DA_SUCCESS) {
+                       _DEBUG_ERROR("sync_agent_changelog_add_item_new() failed !!");
+               }
+       } else {
+               ret = sync_agent_add_item_new(sync_agent_item, 1, item_id);
+               if (ret != SYNC_AGENT_DA_SUCCESS) {
+                       _DEBUG_ERROR("sync_agent_add_item_new() failed !!");
+               }
+       }
 
-//      item_id = (char **) calloc(count, sizeof(char *));
-//      if (item_id == NULL) {
-//              _DEBUG_ERROR("calloc failed !!");
-//      }
-//
-//      for (i; i < count; i++) {
-//              if (use_changelog == 1) {
-//                      ret = sync_agent_changelog_add_item_new(sync_agent_item, item_id);
-//              } else {
-//                      ret = sync_agent_add_item_new(sync_agent_item, count, item_id);
-//              }
-//
-//              if (ret != SYNC_AGENT_DA_SUCCESS) {
-//                      _DEBUG_ERROR("add item failed !!");
-//                      return ret;
-//              }
-//      }
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
+EXPORT_API sync_agent_da_return_e sync_agent_add_bulk_item(sync_agent_da_item_s * sync_agent_item, char **item_id, int use_changelog)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(sync_agent_item == NULL, SYNC_AGENT_DA_ERRORS, "sync_agent_da_item_s is NULL !!");
+
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
 
        if (use_changelog == 1) {
                ret = sync_agent_changelog_add_item_new(sync_agent_item, item_id);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("da_changelog_add_item_internal() failed !!");
+                       _DEBUG_ERROR("sync_agent_changelog_add_item_new() failed !!");
                }
        } else {
                ret = sync_agent_add_item_new(sync_agent_item, 1, item_id);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("da_add_item_internal() failed !!");
+                       _DEBUG_ERROR("sync_agent_add_item_new() failed !!");
                }
        }
 
        _EXTERN_FUNC_EXIT;
-
        return ret;
 }
 
@@ -150,33 +152,33 @@ EXPORT_API sync_agent_da_return_e sync_agent_delete_item(char *item_id, int use_
        if (use_changelog == 1) {
                ret = sync_agent_create_item(&get_item);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("sync_agent_create_item() failed !!");
+                       _DEBUG_ERROR("sync_agent_create_item() failed, ret[%d]", ret);
                        return ret;
                }
 
-               ret = sync_agent_get_item(item_id, &get_item);
+               ret = sync_agent_get_item_account_id(item_id, &get_item);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("sync_agent_get_item() failed !!");
+                       _DEBUG_ERROR("sync_agent_get_item_account_id() failed, ret[%d]", ret);
                        int ret_temp = sync_agent_free_item(get_item);
                        if (ret_temp != SYNC_AGENT_DA_SUCCESS) {
-                               _DEBUG_ERROR("sync_agent_free_item() failed !!");
+                               _DEBUG_ERROR("sync_agent_get_item_account_id() failed, ret[%d]", ret);
                        }
                        return ret;
                }
 
                ret = sync_agent_changelog_delete_item_new(get_item->account_id, item_id);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("da_changelog_delete_item_internal() failed !!");
+                       _DEBUG_ERROR("da_changelog_delete_item_internal() failed, ret[%d]", ret);
                }
 
                ret = sync_agent_free_item(get_item);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("sync_agent_free_item() failed !!");
+                       _DEBUG_ERROR("sync_agent_free_item() failed, ret[%d]", ret);
                }
        } else {
                ret = da_delete_item_by_item_id_internal(item_id);
                if (ret != SYNC_AGENT_DA_SUCCESS) {
-                       _DEBUG_ERROR("da_delete_item_by_item_id_internal() failed !!");
+                       _DEBUG_ERROR("da_delete_item_by_item_id_internal() failed, ret[%d]", ret);
                }
        }
 
@@ -223,14 +225,9 @@ EXPORT_API sync_agent_da_return_e sync_agent_get_item(char *item_id, sync_agent_
 
        sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
 
-//      if (item_id == NULL) {
-//              _DEBUG_ERROR("item id is NULL !!");
-//              return ret;
-//      }
-
        SYNC_AGENT_DA_HANDLER *daci_handler = da_get_agent_handler(SYNC_AGENT_DA_GET_THREAD_ID);
        if (daci_handler == NULL) {
-               _DEBUG_ERROR("[%s] no handler for key\n", __func__);
+               _DEBUG_ERROR("[%s] no handler for key");
                return ret;
        }
 
@@ -244,6 +241,52 @@ EXPORT_API sync_agent_da_return_e sync_agent_get_item(char *item_id, sync_agent_
        return ret;
 }
 
+EXPORT_API sync_agent_da_return_e sync_agent_get_item_data_store_id(char *item_id, sync_agent_da_item_s ** sync_agent_item)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(item_id == NULL, SYNC_AGENT_DA_ERRORS, "item id is NULL !!");
+
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
+
+       SYNC_AGENT_DA_HANDLER *daci_handler = da_get_agent_handler(SYNC_AGENT_DA_GET_THREAD_ID);
+       if (daci_handler == NULL) {
+               _DEBUG_ERROR("[%s] no handler for key");
+               return ret;
+       }
+
+       ret = da_get_item_data_store_id_new(daci_handler, item_id, sync_agent_item);
+       if (ret != SYNC_AGENT_DA_SUCCESS) {
+               _DEBUG_ERROR("da_get_item_data_store_id_new() faied, ret[%d]", ret);
+       }
+
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
+EXPORT_API sync_agent_da_return_e sync_agent_get_item_account_id(char *item_id, sync_agent_da_item_s ** sync_agent_item)
+{
+       _EXTERN_FUNC_ENTER;
+
+       retvm_if(item_id == NULL, SYNC_AGENT_DA_ERRORS, "item id is NULL !!");
+
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
+
+       SYNC_AGENT_DA_HANDLER *daci_handler = da_get_agent_handler(SYNC_AGENT_DA_GET_THREAD_ID);
+       if (daci_handler == NULL) {
+               _DEBUG_ERROR("[%s] no handler for key");
+               return ret;
+       }
+
+       ret = da_get_item_account_id_new(daci_handler, item_id, sync_agent_item);
+       if (ret != SYNC_AGENT_DA_SUCCESS) {
+               _DEBUG_ERROR("da_get_item_account_id_new() faied, ret[%d]", ret);
+       }
+
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}
+
 EXPORT_API sync_agent_da_return_e sync_agent_get_item_list(int account_id, sync_agent_da_get_item_list_query_s * query, GList ** list)
 {
        _EXTERN_FUNC_ENTER;
@@ -386,24 +429,31 @@ EXPORT_API sync_agent_da_return_e sync_agent_free_item(sync_agent_da_item_s * sy
        if (sync_agent_item != NULL) {
                if (sync_agent_item->item_id != NULL)
                        free(sync_agent_item->item_id);
+               sync_agent_item->item_id = NULL;
 
                if (sync_agent_item->folder_id != NULL)
                        free(sync_agent_item->folder_id);
+               sync_agent_item->folder_id = NULL;
 
                if (sync_agent_item->service_id != NULL)
                        free(sync_agent_item->service_id);
+               sync_agent_item->service_id = NULL;
+
+               if (sync_agent_item->parent_service_id != NULL)
+                       free(sync_agent_item->parent_service_id);
+               sync_agent_item->parent_service_id = NULL;
 
                if (sync_agent_item->access_name != NULL)
                        free(sync_agent_item->access_name);
+               sync_agent_item->access_name = NULL;
 
                free(sync_agent_item);
+               sync_agent_item = NULL;
        } else {
                _DEBUG_ERROR("sync_agent_item is NULL !!");
                return SYNC_AGENT_DA_ERRORS;
        }
-
        _EXTERN_FUNC_EXIT;
-
        return SYNC_AGENT_DA_SUCCESS;
 }
 
@@ -436,9 +486,7 @@ EXPORT_API sync_agent_da_return_e sync_agent_free_item_list(GList * list)
                _DEBUG_ERROR("list is NULL !!");
                return SYNC_AGENT_DA_ERRORS;
        }
-
        _EXTERN_FUNC_EXIT;
-
        return ret;
 }
 
@@ -448,13 +496,13 @@ EXPORT_API sync_agent_da_return_e sync_agent_free_item_id(char *item_id)
 
        if (item_id != NULL) {
                free(item_id);
+               item_id = NULL;
        } else {
                _DEBUG_ERROR("item id is NULL !!");
                return SYNC_AGENT_DA_ERRORS;;
        }
 
        _EXTERN_FUNC_EXIT;
-
        return SYNC_AGENT_DA_SUCCESS;
 }
 
@@ -481,17 +529,15 @@ EXPORT_API sync_agent_da_return_e sync_agent_free_item_id_list(GList * list)
                                return ret;
                        }
                }
-
                g_list_free(list);
        } else {
                _DEBUG_INFO("list is NULL !!");
                return ret;
        }
-
        _EXTERN_FUNC_EXIT;
-
        return ret;
 }
+
 EXPORT_API sync_agent_da_return_e sync_agent_get_item_count(int data_store_id, int *item_count)
 {
        _EXTERN_FUNC_ENTER;
@@ -543,3 +589,20 @@ return_part:
        _EXTERN_FUNC_EXIT;
        return ret;
 }
+
+EXPORT_API sync_agent_da_return_e sync_agent_get_updated_exdate_item_id_list(char *fw_id, GList ** list)
+{
+       _EXTERN_FUNC_ENTER;
+       retvm_if(fw_id == NULL, SYNC_AGENT_DA_ERRORS, "fw_id is NULL !!");
+       sync_agent_da_return_e ret = SYNC_AGENT_DA_ERRORS;
+
+       SYNC_AGENT_DA_HANDLER *daci_handler = da_get_agent_handler(SYNC_AGENT_DA_GET_THREAD_ID);
+       goto_if(daci_handler == NULL, "daci_handler is null");
+
+       ret = da_get_updated_exdate_item_id_list(daci_handler, fw_id, list);
+       goto_if(ret != SYNC_AGENT_DA_SUCCESS, "da_get_updated_exdate_item_id_list() failed, ret = [%d]", ret);
+
+return_part:
+       _EXTERN_FUNC_EXIT;
+       return ret;
+}