Remove db connection/disconnection API 35/137835/1
authorMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 04:25:57 +0000 (13:25 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Mon, 10 Jul 2017 04:25:57 +0000 (13:25 +0900)
Merge into SELECT api

Change-Id: I25e0bd4b56b95a1856ea7142d7a0457685b3b2f8
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
server/thumb-server-internal.c
src/include/util/media-thumb-db.h
src/util/media-thumb-db.c

index 14b3cbf..99c2e20 100755 (executable)
@@ -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;
 }
 
index a6eedf9..f5020c0 100755 (executable)
 #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_*/
index eab4ef1..ba24ed8 100755 (executable)
 #include <string.h>
 #include <unistd.h>
 
-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");