Move table creation function to media-svc-db-utils 69/311169/5
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 15 May 2024 23:16:44 +0000 (08:16 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Sun, 9 Jun 2024 23:44:42 +0000 (08:44 +0900)
Function related to table creation have been moved to more appropriate locations.

Change-Id: Ic35913ee33853016cf83167a5ec838fae4f11abb
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
include/media-svc-db-utils.h
include/media-svc-env.h
packaging/libmedia-service.spec
src/media-svc-db-utils.c
src/media-svc.c

index 6a63ac5..ea83fbd 100755 (executable)
@@ -33,9 +33,7 @@ static inline void __sqlfree(void *p)
 }
 #define sql_autoptr __attribute__((cleanup(__sqlfree))) char *
 
-int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid);
-int _media_svc_init_table_query(void);
-void _media_svc_destroy_table_query(void);
+int _media_svc_create_table(uid_t uid);
 int _media_svc_sql_query(const char *sql_str, uid_t uid);
 int _media_svc_sql_query_direct(const char *sql_str, uid_t uid);
 int _media_svc_check_table_exist(sqlite3 *db_handle, bool *exist);
@@ -44,6 +42,5 @@ int _media_svc_get_result(sqlite3 *handle, const char *sql_str, sqlite3_stmt **s
 int _media_svc_sql_query_list(GList **query_list, uid_t uid);
 int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid);
 void _media_svc_sql_query_add(GList **query_list, char **query);
-void _media_svc_sql_query_release(GList **query_list);
 
 #endif /*_MEDIA_SVC_DB_UTILS_H_*/
index 0ea3629..e8693d9 100755 (executable)
@@ -105,21 +105,6 @@ typedef enum {
        MEDIA_SVC_QUERY_UPDATE_COMMON,
 } media_svc_query_type_e;
 
-typedef enum {
-       DB_LIST_MEDIA = 0,
-       DB_LIST_FOLDER,
-       DB_LIST_PLAYLIST_MAP,
-       DB_LIST_PLAYLIST,
-       DB_LIST_ALBUM,
-       DB_LIST_TAG_MAP,
-       DB_LIST_TAG,
-       DB_LIST_BOOKMARK,
-       DB_LIST_STORAGE,
-       DB_LIST_FACE_SCAN_LIST,
-       DB_LIST_FACE,
-       DB_LIST_MAX,
-} media_svc_table_slist_e;
-
 #ifdef __cplusplus
 }
 #endif
index 6be4817..e44cdbc 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmedia-service
 Summary:    Media information service library for multimedia applications
-Version:    0.6.5
+Version:    0.6.6
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index 9c3ecb9..c3f7c14 100755 (executable)
 #include "media-svc-db-utils.h"
 #include "media-svc-media.h"
 
+typedef enum {
+       DB_LIST_MEDIA = 0,
+       DB_LIST_FOLDER,
+       DB_LIST_PLAYLIST_MAP,
+       DB_LIST_PLAYLIST,
+       DB_LIST_ALBUM,
+       DB_LIST_TAG_MAP,
+       DB_LIST_TAG,
+       DB_LIST_BOOKMARK,
+       DB_LIST_STORAGE,
+       DB_LIST_FACE_SCAN_LIST,
+       DB_LIST_FACE,
+       DB_LIST_MAX,
+} media_svc_table_slist_e;
+
 static GHashTable *table;
 static GSList *column_list[DB_LIST_MAX];
 
@@ -205,7 +220,7 @@ static int __create_tag_view(uid_t uid)
        return _media_svc_sql_query(q, uid);
 }
 
-int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid)
+static int __media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
        GSList *iter = NULL;
@@ -327,10 +342,8 @@ static void __media_svc_column_free(gpointer data)
        g_free(col);
 }
 
-int _media_svc_init_table_query(void)
+static void __media_svc_init_table_query(void)
 {
-       int ret = MS_MEDIA_ERR_NONE;
-
        /*variable initialize.. */
        table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, __media_svc_table_free);
 
@@ -453,11 +466,9 @@ int _media_svc_init_table_query(void)
        __add_column_info(&column_list[DB_LIST_FACE], "face_rect_h", DB_TYPE_INT, "DEFAULT 0", true, false, false);
        __add_column_info(&column_list[DB_LIST_FACE], "face_orientation", DB_TYPE_INT, "DEFAULT 0", false, false, false);
        __add_column_info(&column_list[DB_LIST_FACE], "media_face_tag", DB_TYPE_TEXT, NULL, false, false, false);
-
-       return ret;
 }
 
-void _media_svc_destroy_table_query(void)
+static void __media_svc_destroy_table_query(void)
 {
        int i = 0;
 
@@ -472,6 +483,94 @@ void _media_svc_destroy_table_query(void)
        }
 }
 
+int _media_svc_create_table(uid_t uid)
+{
+       int ret = MS_MEDIA_ERR_NONE;
+       media_svc_debug_fenter();
+       __media_svc_init_table_query();
+
+       /*create media table*/
+       ret = __media_svc_make_table_query(DB_TABLE_MEDIA, DB_LIST_MEDIA, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create media table");
+               goto ERROR;
+       }
+
+       /*create folder table*/
+       ret = __media_svc_make_table_query(DB_TABLE_FOLDER, DB_LIST_FOLDER, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create folder table");
+               goto ERROR;
+       }
+
+       /*create playlist_map table*/
+       ret = __media_svc_make_table_query(DB_TABLE_PLAYLIST_MAP, DB_LIST_PLAYLIST_MAP, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create playlist_map table");
+               goto ERROR;
+       }
+
+       /*create playlist table*/
+       ret = __media_svc_make_table_query(DB_TABLE_PLAYLIST, DB_LIST_PLAYLIST, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create playlist table");
+               goto ERROR;
+       }
+
+       /* create album table*/
+       ret = __media_svc_make_table_query(DB_TABLE_ALBUM, DB_LIST_ALBUM, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create album table");
+               goto ERROR;
+       }
+
+       /*create tag_map table*/
+       ret = __media_svc_make_table_query(DB_TABLE_TAG_MAP, DB_LIST_TAG_MAP, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create tag_map table");
+               goto ERROR;
+       }
+
+       /*create tag table*/
+       ret = __media_svc_make_table_query(DB_TABLE_TAG, DB_LIST_TAG, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create tag table");
+               goto ERROR;
+       }
+
+       /*create bookmark table*/
+       ret = __media_svc_make_table_query(DB_TABLE_BOOKMARK, DB_LIST_BOOKMARK, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create bookmark table");
+               goto ERROR;
+       }
+
+       /*create storage table from tizen 2.4 */
+       ret = __media_svc_make_table_query(DB_TABLE_STORAGE, DB_LIST_STORAGE, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create storage table");
+               goto ERROR;
+       }
+
+       /*create face table. from tizen 3.0*/
+       ret = __media_svc_make_table_query(DB_TABLE_FACE_SCAN_LIST, DB_LIST_FACE_SCAN_LIST, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create face_scan_list table");
+               goto ERROR;
+       }
+
+       ret = __media_svc_make_table_query(DB_TABLE_FACE, DB_LIST_FACE, uid);
+       if (ret != MS_MEDIA_ERR_NONE) {
+               media_svc_error("failed to create face table");
+               goto ERROR;
+       }
+ERROR:
+       __media_svc_destroy_table_query();
+       media_svc_debug_fleave();
+
+       return ret;
+}
+
 int _media_svc_sql_query(const char *sql_str, uid_t uid)
 {
        return media_db_request_update_db(sql_str, uid);
@@ -592,6 +691,14 @@ int _media_svc_get_result(sqlite3 *handle, const char *sql_str, sqlite3_stmt **s
        return __media_svc_get_result(handle, sql_str, stmt);
 }
 
+static void __media_svc_sql_query_release(GList **query_list)
+{
+       if (*query_list) {
+               g_list_free(*query_list);
+               *query_list = NULL;
+       }
+}
+
 int _media_svc_sql_query_list(GList **query_list, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
@@ -612,7 +719,7 @@ int _media_svc_sql_query_list(GList **query_list, uid_t uid)
                sqlite3_free(q);
        }
 
-       _media_svc_sql_query_release(query_list);
+       __media_svc_sql_query_release(query_list);
 
        return MS_MEDIA_ERR_NONE;
 }
@@ -655,7 +762,7 @@ int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid)
                if (SQLITE_OK != ret) {
                        media_svc_error("Commit failed");
                        media_db_disconnect(handle);
-                       _media_svc_sql_query_release(query_list);
+                       __media_svc_sql_query_release(query_list);
                        return MS_MEDIA_ERR_DB_INTERNAL;
                }
        }
@@ -663,7 +770,7 @@ int _media_svc_sql_query_list_direct(GList **query_list, uid_t uid)
        media_db_disconnect(handle);
 
 ZERO_LEN:
-       _media_svc_sql_query_release(query_list);
+       __media_svc_sql_query_release(query_list);
 
        return MS_MEDIA_ERR_NONE;
 }
@@ -672,11 +779,3 @@ void _media_svc_sql_query_add(GList **query_list, char **query)
 {
        *query_list = g_list_append(*query_list, *query);
 }
-
-void _media_svc_sql_query_release(GList **query_list)
-{
-       if (*query_list) {
-               g_list_free(*query_list);
-               *query_list = NULL;
-       }
-}
index 7555644..b1db172 100755 (executable)
@@ -45,96 +45,7 @@ int media_svc_check_table_exist(sqlite3 *handle, bool *exist)
 
 int media_svc_create_table(uid_t uid)
 {
-       int ret = MS_MEDIA_ERR_NONE;
-       media_svc_debug_fenter();
-
-       ret = _media_svc_init_table_query();
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_init_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create media table*/
-       ret = _media_svc_make_table_query(DB_TABLE_MEDIA, DB_LIST_MEDIA, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create folder table*/
-       ret = _media_svc_make_table_query(DB_TABLE_FOLDER, DB_LIST_FOLDER, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create playlist_map table*/
-       ret = _media_svc_make_table_query(DB_TABLE_PLAYLIST_MAP, DB_LIST_PLAYLIST_MAP, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create playlist table*/
-       ret = _media_svc_make_table_query(DB_TABLE_PLAYLIST, DB_LIST_PLAYLIST, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /* create album table*/
-       ret = _media_svc_make_table_query(DB_TABLE_ALBUM, DB_LIST_ALBUM, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create tag_map table*/
-       ret = _media_svc_make_table_query(DB_TABLE_TAG_MAP, DB_LIST_TAG_MAP, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create tag table*/
-       ret = _media_svc_make_table_query(DB_TABLE_TAG, DB_LIST_TAG, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create bookmark table*/
-       ret = _media_svc_make_table_query(DB_TABLE_BOOKMARK, DB_LIST_BOOKMARK, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create storage table from tizen 2.4 */
-       ret = _media_svc_make_table_query(DB_TABLE_STORAGE, DB_LIST_STORAGE, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       /*create face table. from tizen 3.0*/
-       ret = _media_svc_make_table_query(DB_TABLE_FACE_SCAN_LIST, DB_LIST_FACE_SCAN_LIST, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-
-       ret = _media_svc_make_table_query(DB_TABLE_FACE, DB_LIST_FACE, uid);
-       if (ret != MS_MEDIA_ERR_NONE) {
-               media_svc_error("_media_svc_make_table_query fail.");
-               goto ERROR;
-       }
-ERROR:
-       _media_svc_destroy_table_query();
-
-       media_svc_debug_fleave();
-
-       return ret;
+       return _media_svc_create_table(uid);
 }
 
 int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, const char *path)