From: Jiyong Min Date: Mon, 14 May 2018 23:47:28 +0000 (+0900) Subject: Code refactoring. remove duplicated code when replace bundle to string X-Git-Tag: submit/tizen/20180528.002901~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f03425fd58be0e8b40bc6fb432506b6ceacae5dc;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Code refactoring. remove duplicated code when replace bundle to string Change-Id: I7880fd420cf8c70ca2cd61151541f004ee5fd1e3 --- diff --git a/include/media_controller_private.h b/include/media_controller_private.h index a533226..bb7903d 100755 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -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); diff --git a/src/media_controller_client.c b/src/media_controller_client.c index 2ee4c9f..e7e926a 100755 --- a/src/media_controller_client.c +++ b/src/media_controller_client.c @@ -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); diff --git a/src/media_controller_server.c b/src/media_controller_server.c index c2fd160..9addb88 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -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); diff --git a/src/media_controller_util.c b/src/media_controller_util.c index 9477505..c9fdda4 100755 --- a/src/media_controller_util.c +++ b/src/media_controller_util.c @@ -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;