From 4cf66c08dc9082f757e56a37e465e51730a763f5 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Mon, 10 Jul 2017 13:25:57 +0900 Subject: [PATCH] Remove db connection/disconnection API Merge into SELECT api Change-Id: I25e0bd4b56b95a1856ea7142d7a0457685b3b2f8 Signed-off-by: Minje Ahn --- server/thumb-server-internal.c | 21 +-------------- src/include/util/media-thumb-db.h | 5 +--- src/util/media-thumb-db.c | 56 +++++++++++++-------------------------- 3 files changed, 21 insertions(+), 61 deletions(-) diff --git a/server/thumb-server-internal.c b/server/thumb-server-internal.c index 14b3cbf..99c2e20 100755 --- a/server/thumb-server-internal.c +++ b/server/thumb-server-internal.c @@ -60,13 +60,6 @@ gboolean _thumb_daemon_start_jobs(gpointer data) void _thumb_daemon_finish_jobs(void) { - sqlite3 *sqlite_db_handle = _media_thumb_db_get_handle(); - - if (sqlite_db_handle != NULL) { - _media_thumb_db_disconnect(); - thumb_dbg("sqlite3 handle is alive. So disconnect to sqlite3"); - } - /* Shutdown ecore-evas */ ecore_evas_shutdown(); g_main_loop_quit(g_thumb_server_mainloop); @@ -422,18 +415,10 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg) return MS_MEDIA_ERR_FILE_NOT_EXIST; } - err = _media_thumb_db_connect(req_msg->uid); - if (err != MS_MEDIA_ERR_NONE) { - thumb_err("_media_thumb_mb_svc_connect failed: %d", err); - res_msg->status = MS_MEDIA_ERR_DB_CONNECT_FAIL; - return err; - } - - err = _media_thumb_get_thumb_from_db_with_size(origin_path, thumb_path, max_length, &origin_w, &origin_h); + err = _media_thumb_get_thumb_from_db_with_size(origin_path, thumb_path, max_length, &origin_w, &origin_h, req_msg->uid); if (err == MS_MEDIA_ERR_NONE) { res_msg->origin_width = origin_w; res_msg->origin_height = origin_h; - _media_thumb_db_disconnect(); return MS_MEDIA_ERR_NONE; } else { if (strlen(thumb_path) == 0) { @@ -441,7 +426,6 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg) if (err != MS_MEDIA_ERR_NONE) { thumb_err("_media_thumb_get_hash_name failed - %d", err); strncpy(thumb_path, THUMB_EMPTY_STR, max_length); - _media_thumb_db_disconnect(); res_msg->status = err; return err; } @@ -494,7 +478,6 @@ int _media_thumb_process(thumbMsg *req_msg, thumbMsg *res_msg) SAFE_FREE(data); strncpy(thumb_path, THUMB_EMPTY_STR, max_length); - _media_thumb_db_disconnect(); res_msg->status = err; return err; } else { @@ -528,8 +511,6 @@ DB_UPDATE: res_msg->status = err; } - _media_thumb_db_disconnect(); - return err; } diff --git a/src/include/util/media-thumb-db.h b/src/include/util/media-thumb-db.h index a6eedf9..f5020c0 100755 --- a/src/include/util/media-thumb-db.h +++ b/src/include/util/media-thumb-db.h @@ -33,10 +33,7 @@ #define UPDATE_THUMB_BY_PATH "UPDATE media SET thumbnail_path = '%q' WHERE path='%q';" #define UPDATE_THUMB_WH_BY_PATH "UPDATE media SET thumbnail_path = '%q', width=%d,height=%d WHERE path='%q';" -sqlite3 *_media_thumb_db_get_handle(); -int _media_thumb_db_connect(uid_t uid); -int _media_thumb_db_disconnect(); -int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height); +int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height, uid_t uid); int _media_thumb_update_db(const char *origin_path, char *thumb_path, int width, int height, uid_t uid); #endif /*_MEDIA_THUMB_DB_H_*/ diff --git a/src/util/media-thumb-db.c b/src/util/media-thumb-db.c index eab4ef1..ba24ed8 100755 --- a/src/util/media-thumb-db.c +++ b/src/util/media-thumb-db.c @@ -27,56 +27,35 @@ #include #include -static __thread MediaDBHandle *db_handle; - -sqlite3 *_media_thumb_db_get_handle() -{ - return db_handle; -} - -int _media_thumb_db_connect(uid_t uid) -{ - int err = MS_MEDIA_ERR_NONE; - - err = media_db_connect(&db_handle, uid, FALSE); - if (err != MS_MEDIA_ERR_NONE) { - thumb_err("media_db_connect failed: %d", err); - db_handle = NULL; - return err; - } - - return MS_MEDIA_ERR_NONE; -} - -int _media_thumb_db_disconnect() -{ - int err = MS_MEDIA_ERR_NONE; - - err = media_db_disconnect(db_handle); - if (err != MS_MEDIA_ERR_NONE) { - thumb_err("media_db_disconnect failed: %d", err); - } - - db_handle = NULL; - return err; -} - -int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height) +int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height, uid_t uid) { int err = MS_MEDIA_ERR_NONE; char *query_string = NULL; sqlite3_stmt *stmt = NULL; + MediaDBHandle *db_handle = NULL; - thumb_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL"); thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path"); query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path); thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed"); thumb_dbg_slog("Query: %s", query_string); + err = media_db_connect(&db_handle, uid, FALSE); + if (err != MS_MEDIA_ERR_NONE) { + thumb_err("media_db_connect failed: %d", err); + db_handle = NULL; + SQLITE3_SAFE_FREE(query_string); + return err; + } + err = sqlite3_prepare_v2(db_handle, query_string, strlen(query_string), &stmt, NULL); SQLITE3_SAFE_FREE(query_string); - thumb_retvm_if(SQLITE_OK != err, MS_MEDIA_ERR_DB_INTERNAL, "prepare error [%s]", sqlite3_errmsg(db_handle)); + if (SQLITE_OK != err) { + thumb_err("prepare error [%s]", sqlite3_errmsg(db_handle)); + media_db_disconnect(db_handle); + + return MS_MEDIA_ERR_DB_INTERNAL; + } if (sqlite3_step(stmt) == SQLITE_ROW) { strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length); @@ -85,10 +64,13 @@ int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thum } else { thumb_err("end of row [%s]", sqlite3_errmsg(db_handle)); SQLITE3_FINALIZE(stmt); + media_db_disconnect(db_handle); + return MS_MEDIA_ERR_DB_INTERNAL; } SQLITE3_FINALIZE(stmt); + media_db_disconnect(db_handle); thumb_retvm_if(!g_file_test(thumb_path, G_FILE_TEST_EXISTS), MS_MEDIA_ERR_INTERNAL, "thumb path doesn't exist in file system"); -- 2.7.4