Rearrange the code to unify duplicated code 15/206515/3
authorjiyong.min <jiyong.min@samsung.com>
Tue, 21 May 2019 01:08:22 +0000 (10:08 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Tue, 21 May 2019 01:21:27 +0000 (01:21 +0000)
 - Unify duplicated code, remove dead application & remove from db
 - Rename and relocate function related with database

Change-Id: Ib98dd6a5e7cbf58d201d8bed14acb302137e331c

svc/include/media_controller_db_util.h
svc/media_controller_db_util.c
svc/media_controller_svc.c

index 6a237d09a794168c94697f64d19dbd8dbabc46f1..615e89494499f900bab90ce5e60cefdd31d34d18 100644 (file)
@@ -30,11 +30,8 @@ int mc_db_util_update_db(void *handle, const char *sql_str);
 int mc_db_util_delete_whole_server_tables(void *handle);
 int mc_db_util_init_latest_server_table(void *handle);
 int mc_db_parse_and_update_db(uid_t uid, const char *data, int data_size);
-int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, mc_priv_type_e priv_type);
-int mc_db_util_activate_server_table(void *db_handle, const char *app_id);
-int mc_db_util_deactivate_server_table(void *db_handle, const char *app_id);
-int mc_db_util_insert_to_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type);
-int mc_db_util_delete_from_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type);
+int mc_db_add_application(uid_t uid, const char *app_id, mc_priv_type_e priv_type);
+int mc_db_remove_application(uid_t uid, const char *app_id, mc_priv_type_e priv_type);
 
 
 #endif /*__TIZEN_MULTIMEDIA_MEDIA_CONTROLLER_DB_UTIL_H__*/
index 8ef6c2040af38c4ede430fd4614b586930759368..007cf1f5b9abd8bc802ad112d7023e219b1cfbd3 100644 (file)
@@ -297,6 +297,7 @@ static gboolean __mc_db_is_latest(void *handle, const char *server_name)
 
        return is_latest;
 }
+
 static int __mc_update_latest_server_info(void *handle, const char *server_name, mc_server_state_e server_state, mc_playback_states_e playback_state, gboolean update_server_name)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
@@ -332,6 +333,123 @@ static int __mc_update_latest_server_info(void *handle, const char *server_name,
        return ret;
 }
 
+static int __mc_db_activate_server_table(void *db_handle, const char *app_id)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *sql_str = NULL;
+
+       mc_debug_fenter();
+
+       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+       if (__mc_db_is_latest(db_handle, app_id)) {
+               ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
+       } else {
+               sql_str = sqlite3_mprintf(DB_CREATE_SERVER_TABLE, app_id, app_id, DB_META_FIELD, app_id, app_id);
+               ret = mc_db_util_update_db(db_handle, sql_str);
+               SQLITE3_SAFE_FREE(sql_str);
+       }
+
+       mc_debug_fleave();
+
+       return ret;
+}
+
+static int __mc_db_deactivate_server_table(void *db_handle, const char *app_id)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *sql_str = NULL;
+
+       mc_debug_fenter();
+
+       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+       /* Update server_state to deactivated, if the server is latest.
+        * Drop the table of server_name, if it is not latest.
+        */
+       if (__mc_db_is_latest(db_handle, app_id)) {
+               ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_DEACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
+       } else {
+               sql_str = sqlite3_mprintf(DB_DROP_TABLE, app_id);
+               ret = mc_db_util_update_db(db_handle, sql_str);
+               SQLITE3_SAFE_FREE(sql_str);
+       }
+
+       mc_debug_fleave();
+
+       return ret;
+}
+
+static int __mc_db_insert_to_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *sql_str = NULL;
+
+       mc_debug_fenter();
+
+       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+       mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
+
+       if (priv_type == MC_PRIV_TYPE_SERVER) {
+               sql_str = sqlite3_mprintf(DB_INSERT_TO_SERVER_LIST, app_id, app_id);
+       } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
+               sql_str = sqlite3_mprintf(DB_INSERT_TO_CLIENT_LIST, app_id, app_id);
+       } else {
+               mc_error("invalid priv_type (%d)", priv_type);
+               mc_debug_fleave();
+               return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+       }
+       mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
+
+       ret = mc_db_util_update_db(db_handle, sql_str);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("media_db_update_db error : %d", ret);
+
+       SQLITE3_SAFE_FREE(sql_str);
+
+       mc_debug_fleave();
+
+       return ret;
+}
+
+static int __mc_db_delete_from_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *sql_str = NULL;
+
+       mc_debug_fenter();
+
+       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
+       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+
+       mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
+
+       if (priv_type == MC_PRIV_TYPE_SERVER) {
+               sql_str = sqlite3_mprintf(DB_DELETE_FROM_SERVER_LIST, app_id);
+       } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
+               sql_str = sqlite3_mprintf(DB_DELETE_FROM_CLIENT_LIST, app_id);
+       } else {
+               mc_error("invalid priv_type (%d)", priv_type);
+               mc_debug_fleave();
+               return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+       }
+       mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
+
+       ret = mc_db_util_update_db(db_handle, sql_str);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("media_db_update_db error : %d", ret);
+
+       SQLITE3_SAFE_FREE(sql_str);
+
+       mc_debug_fleave();
+
+       return ret;
+}
+
 char *mc_db_get_db_path(uid_t uid)
 {
        char *db_path = NULL;
@@ -732,129 +850,52 @@ ERROR:
        return ret;
 }
 
-int mc_db_util_activate_server_table(void *db_handle, const char *app_id)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
-       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
-       if (__mc_db_is_latest(db_handle, app_id)) {
-               ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_ACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
-       } else {
-               sql_str = sqlite3_mprintf(DB_CREATE_SERVER_TABLE, app_id, app_id, DB_META_FIELD, app_id, app_id);
-               ret = mc_db_util_update_db(db_handle, sql_str);
-               SQLITE3_SAFE_FREE(sql_str);
-       }
-
-       mc_debug_fleave();
-
-       return ret;
-}
-
-int mc_db_util_deactivate_server_table(void *db_handle, const char *app_id)
+int mc_db_add_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
+       void *db_handle = NULL;
 
        mc_debug_fenter();
 
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
        mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+       mc_retvm_if((priv_type != MC_PRIV_TYPE_SERVER) && (priv_type != MC_PRIV_TYPE_CLIENT), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", priv_type);
 
-       /* Update server_state to deactivated, if the server is latest.
-        * Drop the table of server_name, if it is not latest.
-        */
-       if (__mc_db_is_latest(db_handle, app_id)) {
-               ret = __mc_update_latest_server_info(db_handle, app_id, MC_SERVER_STATE_DEACTIVATE, MC_PLAYBACK_STATE_STOPPED, FALSE);
-       } else {
-               sql_str = sqlite3_mprintf(DB_DROP_TABLE, app_id);
-               ret = mc_db_util_update_db(db_handle, sql_str);
-               SQLITE3_SAFE_FREE(sql_str);
+       ret = mc_db_connect(&db_handle, uid, TRUE);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+               mc_error("mc_db_connect error : %d", ret);
+               mc_db_disconnect(db_handle);
+               return ret;
        }
 
-       mc_debug_fleave();
-
-       return ret;
-}
-
-int mc_db_util_insert_to_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
-       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
-       mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
-
-       if (priv_type == MC_PRIV_TYPE_SERVER) {
-               sql_str = sqlite3_mprintf(DB_INSERT_TO_SERVER_LIST, app_id, app_id);
-       } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
-               sql_str = sqlite3_mprintf(DB_INSERT_TO_CLIENT_LIST, app_id, app_id);
-       } else {
-               mc_error("invalid priv_type (%d)", priv_type);
-               mc_debug_fleave();
-               return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+       ret = __mc_db_insert_to_list(db_handle, app_id, priv_type);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+               mc_error("__mc_db_insert_to_list failed (%d)", ret);
+               mc_db_disconnect(db_handle);
+               return ret;
        }
-       mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
-
-       ret = mc_db_util_update_db(db_handle, sql_str);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("media_db_update_db error : %d", ret);
-
-       SQLITE3_SAFE_FREE(sql_str);
-
-       mc_debug_fleave();
-
-       return ret;
-}
-
-int mc_db_util_delete_from_list(void *db_handle, const char *app_id, mc_priv_type_e priv_type)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(db_handle == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid handle");
-       mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
-
-       mc_secure_debug("app_id: %s, priv_type: %d", app_id, priv_type);
 
        if (priv_type == MC_PRIV_TYPE_SERVER) {
-               sql_str = sqlite3_mprintf(DB_DELETE_FROM_SERVER_LIST, app_id);
-       } else if (priv_type == MC_PRIV_TYPE_CLIENT) {
-               sql_str = sqlite3_mprintf(DB_DELETE_FROM_CLIENT_LIST, app_id);
-       } else {
-               mc_error("invalid priv_type (%d)", priv_type);
-               mc_debug_fleave();
-               return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
+               ret = __mc_db_activate_server_table(db_handle, app_id);
+               if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+                       mc_secure_error("__mc_db_activate_server_table failed (%d)", ret);
+                       __mc_db_delete_from_list(db_handle, app_id, priv_type);
+               }
        }
-       mc_retvm_if(sql_str == NULL, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "sql_str is NULL");
 
-       ret = mc_db_util_update_db(db_handle, sql_str);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("media_db_update_db error : %d", ret);
-
-       SQLITE3_SAFE_FREE(sql_str);
+       mc_db_disconnect(db_handle);
 
        mc_debug_fleave();
 
        return ret;
 }
 
-int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
+int mc_db_remove_application(uid_t uid, const char *app_id, const mc_priv_type_e priv_type)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        void *db_handle = NULL;
 
        mc_retvm_if(app_id == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid app_id");
+       mc_retvm_if((priv_type != MC_PRIV_TYPE_SERVER) && (priv_type != MC_PRIV_TYPE_CLIENT), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", priv_type);
 
        ret = mc_db_connect(&db_handle, uid, TRUE);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
@@ -864,17 +905,17 @@ int mc_db_util_remove_dead_application(uid_t uid, const char *app_id, const mc_p
        }
 
        /* Delete application from server/client list */
-       ret = mc_db_util_delete_from_list(db_handle, app_id, priv_type);
+       ret = __mc_db_delete_from_list(db_handle, app_id, priv_type);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_secure_error("mc_db_util_delete_from_list error : %d", ret);
+               mc_secure_error("__mc_db_delete_from_list error : %d", ret);
 
        /* Drop server table to remove application information if it is not latest.
         * Update application information if it is latest.
         */
        if (priv_type == MC_PRIV_TYPE_SERVER) {
-               ret = mc_db_util_deactivate_server_table(db_handle, app_id);
+               ret = __mc_db_deactivate_server_table(db_handle, app_id);
                if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-                       mc_secure_error("mc_db_util_deactivate_server_table error : %d", ret);
+                       mc_secure_error("__mc_db_deactivate_server_table error : %d", ret);
        }
 
        mc_db_disconnect(db_handle);
index 8bcd15c5ceb8b230c493e9e3d52838aefb80aa4d..fc777ac505214a637288d665786969e0a99bac50 100644 (file)
@@ -441,81 +441,6 @@ static int _mc_service_get_data(GList **connected_list, mc_comm_msg_s *request_m
        }
 }
 
-static int __mc_service_add_to_db(mc_comm_msg_s *request_msg)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       void *db_handle = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(!request_msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid request message");
-       mc_retvm_if(!request_msg->msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid message");
-       mc_retvm_if(((request_msg->priv_type != MC_PRIV_TYPE_SERVER) && (request_msg->priv_type != MC_PRIV_TYPE_CLIENT)), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", request_msg->priv_type);
-
-       ret = mc_db_connect(&db_handle, request_msg->uid, TRUE);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
-               mc_error("mc_db_connect error : %d", ret);
-               mc_db_disconnect(db_handle);
-               return ret;
-       }
-
-       ret = mc_db_util_insert_to_list(db_handle, request_msg->msg, request_msg->priv_type);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
-               mc_error("mc_db_util_insert_to_list failed (%d)", ret);
-               mc_db_disconnect(db_handle);
-               return ret;
-       }
-
-       if (request_msg->priv_type == MC_PRIV_TYPE_SERVER) {
-               ret = mc_db_util_activate_server_table(db_handle, request_msg->msg);
-               if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
-                       mc_secure_error("mc_db_util_activate_server_table failed (%d)", ret);
-                       mc_db_util_delete_from_list(db_handle, request_msg->msg, request_msg->priv_type);
-               }
-       }
-
-       mc_db_disconnect(db_handle);
-
-       mc_debug_fleave();
-
-       return ret;
-}
-
-static int __mc_service_remove_from_db(mc_comm_msg_s *request_msg)
-{
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       void *db_handle = NULL;
-
-       mc_debug_fenter();
-
-       mc_retvm_if(!request_msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid request message");
-       mc_retvm_if(!request_msg->msg, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid message");
-       mc_retvm_if(((request_msg->priv_type != MC_PRIV_TYPE_SERVER) && (request_msg->priv_type != MC_PRIV_TYPE_CLIENT)), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid priv_type[%d]", request_msg->priv_type);
-
-       ret = mc_db_connect(&db_handle, request_msg->uid, TRUE);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
-               mc_error("mc_db_connect error : %d", ret);
-               mc_db_disconnect(db_handle);
-               return ret;
-       }
-
-       ret = mc_db_util_delete_from_list(db_handle, request_msg->msg, request_msg->priv_type);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("mc_db_util_delete_from_list failed (%d)", ret);
-
-       if (request_msg->priv_type == MC_PRIV_TYPE_SERVER) {
-               ret = mc_db_util_deactivate_server_table(db_handle, request_msg->msg);
-               if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-                       mc_secure_error("mc_db_util_deactivate_server_table failed (%d)", ret);
-       }
-
-       mc_db_disconnect(db_handle);
-
-       mc_debug_fleave();
-
-       return ret;
-}
-
 static int __mc_notify_server_updated(const char *server_name, mc_server_state_e state)
 {
        char *message = NULL;
@@ -586,7 +511,7 @@ static int _mc_service_app_dead_handler(int pid, void *data)
                        mc_secure_debug("app_dead(appid) : %s", app_data->app_id);
 
                        /* Delete and update information of dead application on database */
-                       if (MEDIA_CONTROLLER_ERROR_NONE != mc_db_util_remove_dead_application(app_data->uid, app_data->app_id, app_data->priv_type))
+                       if (MEDIA_CONTROLLER_ERROR_NONE != mc_db_remove_application(app_data->uid, app_data->app_id, app_data->priv_type))
                                mc_secure_error("Fail to remove dead application");
 
                        /* Sends notification for deactivated server via dbus */
@@ -667,7 +592,7 @@ gboolean _mc_service_process(gpointer data)
                if (MC_STRING_VALID(request_msg->msg)) {
                        send_msg = _mc_service_add_connection(&(_service_data->connected), request_msg);
                        if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
-                               send_msg = __mc_service_add_to_db(request_msg);
+                               send_msg = mc_db_add_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
                } else {
                        mc_error("Wrong message!");
                        send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
@@ -676,7 +601,7 @@ gboolean _mc_service_process(gpointer data)
                if (MC_STRING_VALID(request_msg->msg)) {
                        send_msg = _mc_service_remove_connection(&(_service_data->connected), request_msg);
                        if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
-                               send_msg = __mc_service_remove_from_db(request_msg);
+                               send_msg = mc_db_remove_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
                } else {
                        mc_error("Wrong message!");
                        send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;