typedef int (*DELETE_INVALID_FOLDER_BY_PATH)(sqlite3 *, const char *, const char *, uid_t);
typedef int (*CHECK_FOLDER_EXIST)(sqlite3*, const char*, const char*);
-typedef int (*GET_FOLDER_ID)(sqlite3 *, const char *, const char *, char *);
typedef int (*GET_EXTRACT_LIST)(sqlite3*, const char*, int, int, const char*, int, uid_t, void*);
typedef int (*UPDATE_ONE_EXTRACT_ITEM)(sqlite3*, const char*, int, void *);
typedef int (*QUERY_DO_UPDATE_LIST)(sqlite3*);
eUPDATE_ITEM_END,
eDELETE_INVALID_FOLDER_BY_PATH,
eCHECK_FOLDER_EXIST,
- eGET_FOLDER_ID,
eGET_MEDIA_TYPE,
eGET_EXTRACT_LIST,
eUPDATE_ONE_EXTRACT_ITEM,
"update_item_end",
"delete_invalid_folder_by_path",
"check_folder_exist",
- "get_folder_id",
"get_media_type",
"get_extract_list",
"update_one_extract_item",
int ms_get_folder_id(sqlite3 *handle, const char *storage_id, const char *path, char **folder_id)
{
- int lib_index;
int ret = MS_MEDIA_ERR_NONE;
- char folder_uuid[MS_UUID_SIZE] = {0,};
+ sqlite3_stmt *sql_stmt = NULL;
+ char *sql = NULL;
- MS_DBG_FENTER();
+ MS_DBG_RETVM_IF(storage_id == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "storage_id is NULL");
+ MS_DBG_RETVM_IF(path == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "path is NULL");
- for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((GET_FOLDER_ID)func_array[lib_index][eGET_FOLDER_ID])(handle, storage_id, path, folder_uuid); /*dlopen*/
- MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "Error : %s", g_array_index(so_array, char*, lib_index));
- }
+ sql = sqlite3_mprintf("SELECT folder_uuid FROM folder WHERE (storage_uuid='%q' AND path='%q')", storage_id, path);
- if (strlen(folder_uuid) == (MS_UUID_SIZE-1))
- *folder_id = strdup(folder_uuid);
- else
+ ret = media_db_get_result(handle, sql, &sql_stmt);
+ MS_DBG_RETV_IF(ret != MS_MEDIA_ERR_NONE, ret);
+
+ if (sqlite3_step(sql_stmt) == SQLITE_ROW) {
+ *folder_id = g_strdup((const char *)sqlite3_column_text(sql_stmt, 0));
+ MS_DBG("folder_id [%s]", *folder_id);
+ } else {
*folder_id = NULL;
+ ret = MS_MEDIA_ERR_DB_NO_RECORD;
+ }
- MS_DBG("folder_id [%s]", *folder_id);
+ MS_SQLITE3_FINALIZE(sql_stmt);
return ret;
}