From: hj kim Date: Wed, 6 Mar 2019 10:35:41 +0000 (+0900) Subject: Code refactoring. Add new internal API __mc_db_get_count() to reduce duplicated codes X-Git-Tag: submit/tizen_5.0/20190404.023255~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5d7c55d9cd431a00873d3bcc159eeef1898fda68;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Code refactoring. Add new internal API __mc_db_get_count() to reduce duplicated codes Change-Id: I1fb4239ff3959bd05d15cf98f244dbae32e02751 --- diff --git a/src/media_controller_db.c b/src/media_controller_db.c index 13b82ca..af6bafc 100755 --- a/src/media_controller_db.c +++ b/src/media_controller_db.c @@ -262,6 +262,30 @@ int mc_db_connect(void **handle) return MEDIA_CONTROLLER_ERROR_NONE; } +static int __mc_db_get_count(void *handle, const char *sql_str) +{ + int ret = MEDIA_CONTROLLER_ERROR_NONE; + sqlite3 *db_handle = (sqlite3 *)handle; + sqlite3_stmt *stmt = NULL; + int count = 0; + + mc_retvm_if(handle == NULL, 0, "invalid handle"); + mc_retvm_if(sql_str == NULL, 0, "invalid sql_str"); + + ret = sqlite3_prepare_v2(db_handle, sql_str, strlen(sql_str), &stmt, NULL); + mc_retvm_if(SQLITE_OK != ret, 0, "prepare error [%s]", sqlite3_errmsg(db_handle)); + + ret = sqlite3_step(stmt); + if (SQLITE_ROW != ret) + mc_error("end of row [%s]", sqlite3_errmsg(db_handle)); + else + count = sqlite3_column_int(stmt, 0); + + SQLITE3_FINALIZE(stmt); + + return count; +} + int mc_db_update_playback_info(const char *server_name, const media_controller_playback_s playback) { int ret = MEDIA_CONTROLLER_ERROR_NONE; @@ -723,9 +747,7 @@ int mc_db_get_foreach_playlist(void *handle, const char *server_name, mc_playlis int mc_db_get_playlist_by_name(void *handle, mc_priv_type_e type, const char *controller_name, const char *playlist_name, mc_playlist_h *playlist) { int ret = MEDIA_CONTROLLER_ERROR_NONE; - sqlite3 *db_handle = (sqlite3 *)handle; char *sql_str = NULL; - sqlite3_stmt *stmt = NULL; int count = 0; mc_retvm_if(handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); @@ -736,22 +758,8 @@ int mc_db_get_playlist_by_name(void *handle, mc_priv_type_e type, const char *co sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM '%q' WHERE server_name = %Q AND playlist_name = %Q", MC_DB_TABLE_PLAYLIST, controller_name, playlist_name); mc_retvm_if(!MC_STRING_VALID(sql_str), MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "SQL string is null"); - ret = sqlite3_prepare_v2(db_handle, sql_str, strlen(sql_str), &stmt, NULL); - if (SQLITE_OK != ret) { - mc_error("prepare error [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_SAFE_FREE(sql_str); - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; - } - - ret = sqlite3_step(stmt); - if (SQLITE_ROW != ret) { - mc_error("end of row [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_FINALIZE(stmt); - SQLITE3_SAFE_FREE(sql_str); - return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION; - } - - count = sqlite3_column_int(stmt, 0); + count = __mc_db_get_count(handle, sql_str); + SQLITE3_SAFE_FREE(sql_str); if (count > 0) { mc_playlist_s *_playlist = (mc_playlist_s *)calloc(1, sizeof(mc_playlist_s)); @@ -772,9 +780,6 @@ int mc_db_get_playlist_by_name(void *handle, mc_priv_type_e type, const char *co ret = MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER; } - SQLITE3_FINALIZE(stmt); - SQLITE3_SAFE_FREE(sql_str); - return ret; } @@ -945,10 +950,7 @@ int mc_db_delete_server_table(const char *server_name) gboolean mc_db_is_server_table_exist(void *handle, const char *server_name) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - sqlite3 *db_handle = (sqlite3 *)handle; char *sql_str = NULL; - sqlite3_stmt *stmt = NULL; int count = 0; mc_retvm_if(handle == NULL, FALSE, "Handle is NULL"); @@ -959,25 +961,9 @@ gboolean mc_db_is_server_table_exist(void *handle, const char *server_name) sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM SQLITE_MASTER WHERE type='table' and name='%q'", server_name); mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); - ret = sqlite3_prepare_v2(db_handle, sql_str, strlen(sql_str), &stmt, NULL); - if (SQLITE_OK != ret) { - mc_error("prepare error [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_SAFE_FREE(sql_str); - return FALSE; - } - + count = __mc_db_get_count(handle, sql_str); SQLITE3_SAFE_FREE(sql_str); - ret = sqlite3_step(stmt); - if (SQLITE_ROW != ret) { - mc_error("end of row [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_FINALIZE(stmt); - return FALSE; - } - - count = sqlite3_column_int(stmt, 0); - SQLITE3_FINALIZE(stmt); - mc_debug("table count [%d]", count); if (count <= 0) { @@ -992,10 +978,7 @@ gboolean mc_db_is_server_table_exist(void *handle, const char *server_name) gboolean mc_db_is_client_table_exist(void *handle, const char *client_name) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - sqlite3 *db_handle = (sqlite3 *)handle; char *sql_str = NULL; - sqlite3_stmt *stmt = NULL; int count = 0; mc_retvm_if(handle == NULL, FALSE, "Handle is NULL"); @@ -1006,25 +989,9 @@ gboolean mc_db_is_client_table_exist(void *handle, const char *client_name) sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM '%q' WHERE client_name='%q'", MC_DB_TABLE_CLIENT_LIST, client_name); mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null"); - ret = sqlite3_prepare_v2(db_handle, sql_str, strlen(sql_str), &stmt, NULL); - if (SQLITE_OK != ret) { - mc_error("prepare error [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_SAFE_FREE(sql_str); - return FALSE; - } - + count = __mc_db_get_count(handle, sql_str); SQLITE3_SAFE_FREE(sql_str); - ret = sqlite3_step(stmt); - if (SQLITE_ROW != ret) { - mc_error("end of row [%s]", sqlite3_errmsg(db_handle)); - SQLITE3_FINALIZE(stmt); - return FALSE; - } - - count = sqlite3_column_int(stmt, 0); - SQLITE3_FINALIZE(stmt); - mc_debug("table count [%d]", count); if (count <= 0) {