Code refactoring. remove duplicated code when replace bundle to string 06/178906/4
authorJiyong Min <jiyong.min@samsung.com>
Mon, 14 May 2018 23:47:28 +0000 (08:47 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Tue, 15 May 2018 01:52:37 +0000 (10:52 +0900)
Change-Id: I7880fd420cf8c70ca2cd61151541f004ee5fd1e3

include/media_controller_private.h
src/media_controller_client.c
src/media_controller_server.c
src/media_controller_util.c

index a533226748f95ae3fcf8cc90acd9462927961d72..bb7903d32876f63daa41cff0b755a8879c1a6854 100755 (executable)
@@ -271,6 +271,7 @@ int mc_util_make_filter_interface_name(const char *prefix, const char *filter, c
 int mc_util_set_command_available(const char *name, const char *command_type, const char *command);
 int mc_util_get_command_available(const char *name, const char *command_type, const char *command);
 int mc_util_get_request_id(unsigned int *req_id);
+int mc_util_bundle_to_string(bundle *bundle_data, char **str_data);
 int mc_safe_strtoi(const char *buffer, int *value);
 int mc_safe_strtoull(const char *buffer, unsigned long long *value);
 
index 2ee4c9f8422a4d66dca29c6cf3ead8738ee9ce7d..e7e926a669208017f10a9bbfb4255e65b491ea28 100755 (executable)
@@ -370,7 +370,7 @@ static int __mc_parse_server_name(const char *interface_name, char **server_name
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
-static int __mc_client_send_command(mc_client_h client, const char *server_name, const char *command_type, const char *signal_name, const char *message, unsigned int *request_id)
+static int __mc_client_send_command(mc_client_h client, const char *server_name, const char *command_type, const char *command, const char *signal_name, const char *message, unsigned int *request_id)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
@@ -387,7 +387,7 @@ static int __mc_client_send_command(mc_client_h client, const char *server_name,
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
        mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
 
-       ret = mc_util_set_command_available(mc_client->client_name, command_type, NULL);
+       ret = mc_util_set_command_available(mc_client->client_name, command_type, command);
        mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_util_set_command_available [%d]", ret);
 
        interface_name = mc_util_get_interface_name(MC_SERVER, server_name);
@@ -1118,7 +1118,7 @@ int mc_client_send_playback_state_command(mc_client_h client, const char *server
        message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, state);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKSTATE, MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKSTATE, NULL, MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
@@ -1138,7 +1138,7 @@ int mc_client_send_playback_action(mc_client_h client, const char *server_name,
        message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, action);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKACTION, MC_DBUS_SIGNAL_NAME_PLAYBACK_ACTION, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKACTION, NULL, MC_DBUS_SIGNAL_NAME_PLAYBACK_ACTION, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
@@ -1157,7 +1157,7 @@ int mc_client_send_playback_position_command(mc_client_h client, const char *ser
        message = g_strdup_printf("%s%s%llu", mc_client->client_name, MC_STRING_DELIMITER, position);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKPOSITION, MC_DBUS_SIGNAL_NAME_PLAYBACK_POS_CMD, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAYBACKPOSITION, NULL, MC_DBUS_SIGNAL_NAME_PLAYBACK_POS_CMD, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
@@ -1177,7 +1177,7 @@ int mc_client_send_shuffle_mode_command(mc_client_h client, const char *server_n
        message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, shuffle_mode);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_SHUFFLE, MC_DBUS_SIGNAL_NAME_SHUFFLE_CMD, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_SHUFFLE, NULL, MC_DBUS_SIGNAL_NAME_SHUFFLE_CMD, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
@@ -1197,7 +1197,7 @@ int mc_client_send_repeat_mode_command(mc_client_h client, const char *server_na
        message = g_strdup_printf("%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, repeat_mode);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_REPEAT, MC_DBUS_SIGNAL_NAME_REPEAT_CMD, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_REPEAT, NULL, MC_DBUS_SIGNAL_NAME_REPEAT_CMD, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
@@ -1208,21 +1208,12 @@ int mc_client_send_custom_command(mc_client_h client, const char *server_name, c
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        char *message = NULL;
-       int size_r = 0;
-       bundle_raw *raw_data = NULL;
+       char *bundle_str = NULL;
        media_controller_client_s *mc_client = (media_controller_client_s *)client;
-       bool exist_server = FALSE;
 
        mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(server_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
 
-       ret = mc_db_check_server_table_exist(mc_client->db_handle, server_name, &exist_server);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_db_check_server_table_exist [%d]", ret);
-       mc_retvm_if(exist_server == FALSE, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Error Invalid server_name");
-
-       ret = mc_util_set_command_available(mc_client->client_name, MC_COMMAND_CUSTOM, command);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error mc_util_set_command_available [%d]", ret);
-
        if (callback) {
                char *interface_name_for_reply = mc_util_get_interface_name(MC_CLIENT, mc_client->client_name);
                mc_client->reply_cb.callback = callback;
@@ -1231,27 +1222,16 @@ int mc_client_send_custom_command(mc_client_h client, const char *server_name, c
                MC_SAFE_FREE(interface_name_for_reply);
        }
 
-       if (data) {
-               ret = bundle_encode(data, &raw_data, &size_r);
-               mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail while encoding bundle [%d]", ret);
-       }
-
-       if ((size_r == 0) || (raw_data == NULL))
-               message = g_strdup_printf("%s%s%s%s%d", mc_client->client_name, MC_STRING_DELIMITER, command, MC_STRING_DELIMITER, size_r);
-       else
-               message = g_strdup_printf("%s%s%s%s%d%s%s", mc_client->client_name, MC_STRING_DELIMITER, command, MC_STRING_DELIMITER, size_r, MC_STRING_DELIMITER, (unsigned char *)raw_data);
-
-       MC_SAFE_FREE(raw_data);
+       ret = mc_util_bundle_to_string(data, &bundle_str);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error when make string from bundle");
 
+       message = g_strdup_printf("%s%s%s%s%s", mc_client->client_name, MC_STRING_DELIMITER, command, MC_STRING_DELIMITER, bundle_str);
+       MC_SAFE_G_FREE(bundle_str);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error when making message");
 
-       char *interface_name = mc_util_get_interface_name(MC_SERVER, server_name);
-       ret = mc_ipc_send_message(mc_client->dconn, NULL, interface_name, MC_DBUS_SIGNAL_NAME_CUSTOM_CMD, message, NULL);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("Error mc_ipc_send_message [%d]", ret);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_CUSTOM, command, MC_DBUS_SIGNAL_NAME_CUSTOM_CMD, message, NULL);
 
        MC_SAFE_G_FREE(message);
-       MC_SAFE_G_FREE(interface_name);
 
        return ret;
 }
@@ -1271,7 +1251,7 @@ int mc_client_send_playlist_command(mc_client_h client, const char *server_name,
        message = g_strdup_printf("%s%s%s%s%s%s%d%s%llu", mc_client->client_name, MC_STRING_DELIMITER, playlist_name, MC_STRING_DELIMITER, index, MC_STRING_DELIMITER, action, MC_STRING_DELIMITER, position);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail making message [%d]", ret);
 
-       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAY_PLAYLIST, MC_DBUS_SIGNAL_NAME_PLAYBACK_PLAYLIST, message, NULL);
+       ret = __mc_client_send_command(client, server_name, MC_COMMAND_PLAY_PLAYLIST, NULL, MC_DBUS_SIGNAL_NAME_PLAYBACK_PLAYLIST, message, NULL);
 
        MC_SAFE_G_FREE(message);
 
index c2fd16066a17a3e372f848e2f1c224b2eca6c8de..9addb88f5be97dc040f4d71491982c7ea0e4984f 100755 (executable)
@@ -882,25 +882,17 @@ int mc_server_send_command_reply(mc_server_h server, const char *client_name, in
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        char *message = NULL;
-       int size_r = 0;
-       bundle_raw *raw_data = NULL;
+       char *bundle_str = NULL;
        media_controller_server_s *mc_server = (media_controller_server_s *)server;
 
        mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
        mc_retvm_if(!MC_STRING_VALID(client_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "client_name is NULL");
 
-       if (data) {
-               ret = bundle_encode(data, &raw_data, &size_r);
-               mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error while encoding bundle [%d]", ret);
-       }
-
-       if ((size_r == 0) || (raw_data == NULL))
-               message = g_strdup_printf("%s%s%d%s%d", mc_server->server_name, MC_STRING_DELIMITER, result_code, MC_STRING_DELIMITER, size_r);
-       else
-               message = g_strdup_printf("%s%s%d%s%d%s%s", mc_server->server_name, MC_STRING_DELIMITER, result_code, MC_STRING_DELIMITER, size_r, MC_STRING_DELIMITER, (unsigned char *)raw_data);
-
-       MC_SAFE_FREE(raw_data);
+       ret = mc_util_bundle_to_string(data, &bundle_str);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Error when make string from bundle");
 
+       message = g_strdup_printf("%s%s%d%s%s", mc_server->server_name, MC_STRING_DELIMITER, result_code, MC_STRING_DELIMITER, bundle_str);
+       MC_SAFE_FREE(bundle_str);
        mc_retvm_if(message == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error when making message");
 
        char *interface_name = mc_util_get_interface_name(MC_CLIENT, client_name);
index 947750563b8f4bac7a1dd8e7228626950f554c4b..c9fdda43bf1fd9ee357679d812463006f8ac0791 100755 (executable)
@@ -196,6 +196,32 @@ int mc_util_get_request_id(unsigned int *req_id)
        return ret;
 }
 
+int mc_util_bundle_to_string(bundle *bundle_data, char **str_data)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       int size_r = 0;
+       bundle_raw *raw_data = NULL;
+
+       mc_retvm_if(str_data == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid parameter");
+
+       if (bundle_data) {
+               ret = bundle_encode(bundle_data, &raw_data, &size_r);
+               mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Error when encode bundle [%d]", ret);
+       }
+
+       if ((size_r == 0) || (raw_data == NULL))
+               *str_data = g_strdup_printf("%d", size_r);
+       else
+               *str_data = g_strdup_printf("%d%s%s", size_r, MC_STRING_DELIMITER, (unsigned char *)raw_data);
+
+       if (*str_data == NULL)
+               ret = MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY;
+
+       MC_SAFE_FREE(raw_data);
+
+       return ret;
+}
+
 int mc_safe_strtoi(const char *buffer, int *value)
 {
        char *end = NULL;