GList *cmds_to_send;
} mc_app_data_set_t;
+typedef struct {
+ GQueue *queue;
+ GSource *source;
+} mc_manage_queue_t;
+
+typedef struct {
+ mc_manage_queue_t *request;
+ GList *connected_apps;
+} mc_service_t;
+
static int __mc_sys_get_uid(uid_t *uid)
{
uid_t *list = NULL;
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static int _mc_service_init(mc_service_t **data)
+static int __mc_service_init(mc_service_t **data)
{
int res = MEDIA_CONTROLLER_ERROR_NONE;
mc_service_t *_service_data = (mc_service_t *)calloc(1, sizeof(mc_service_t));
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static void _mc_service_deinit(mc_service_t *data)
+static void __mc_service_deinit(mc_service_t *data)
{
if (data != NULL) {
if (data->request != NULL)
}
}
-static int _mc_service_check_db(uid_t uid)
+static int __mc_service_check_db(uid_t uid)
{
int res = MEDIA_CONTROLLER_ERROR_NONE;
sqlite3 *db_handle = NULL;
return res;
}
-static int _mc_service_reset_db(uid_t uid)
+static int __mc_service_reset_db(uid_t uid)
{
int res = MEDIA_CONTROLLER_ERROR_NONE;
int version = 0;
return res;
}
-static gboolean _mc_service_is_valid_queue(mc_service_t *data)
+static gboolean __mc_service_is_valid_queue(mc_service_t *data)
{
return (data && data->request && data->request->queue);
}
-static gboolean _mc_service_is_exist_pid(GList *list, int pid, mc_priv_type_e priv_type)
+static gboolean __mc_service_is_exist_pid(GList *list, int pid, mc_priv_type_e priv_type)
{
return (__mc_list_get_index(list, pid, priv_type) != -1);
}
-static gboolean _mc_service_is_valid_connection(GList *connected_list, mc_comm_msg_s *request_msg)
+static gboolean __mc_service_is_valid_connection(GList *connected_list, mc_comm_msg_s *request_msg)
{
if (request_msg->msg_type != MC_MSG_SERVER_CONNECTION) {
if (connected_list == NULL)
return FALSE;
- if (!_mc_service_is_exist_pid(connected_list, request_msg->pid, request_msg->priv_type))
+ if (!__mc_service_is_exist_pid(connected_list, request_msg->pid, request_msg->priv_type))
return FALSE;
}
return TRUE;
}
-static int _mc_service_add_connection(GList **connected_list, mc_comm_msg_s *request_msg)
+static int __mc_service_add_connection(GList **connected_list, mc_comm_msg_s *request_msg)
{
mc_debug_fenter();
mc_retvm_if(request_msg == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "request_msg is NULL");
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);
- if (*connected_list != NULL && _mc_service_is_exist_pid(*connected_list, request_msg->pid, request_msg->priv_type)) {
+ if (*connected_list != NULL && __mc_service_is_exist_pid(*connected_list, request_msg->pid, request_msg->priv_type)) {
mc_error("Already connected[%d]", g_connection_cnt);
return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
}
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static int _mc_service_remove_connection(GList **connected_list, mc_comm_msg_s *request_msg)
+static int __mc_service_remove_connection(GList **connected_list, mc_comm_msg_s *request_msg)
{
mc_debug_fenter();
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static int _mc_service_add_cmd_to_send(GList **connected_list, mc_comm_msg_s *request_msg)
+static int __mc_service_add_cmd_to_send(GList **connected_list, mc_comm_msg_s *request_msg)
{
g_list_foreach(*connected_list, __mc_add_cmd_to_send, request_msg);
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static int _mc_service_remove_cmd_to_send(GList **connected_list, mc_comm_msg_s *request_msg)
+static int __mc_service_remove_cmd_to_send(GList **connected_list, mc_comm_msg_s *request_msg)
{
mc_list_user_data *user_data = calloc(1, sizeof(mc_list_user_data));
mc_retvm_if(!user_data, MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY, "memory allocation is failed");
return MEDIA_CONTROLLER_ERROR_NONE;
}
-static int _mc_service_app_dead_handler(int pid, void *data)
+static int __mc_service_app_dead_handler(int pid, void *data)
{
mc_service_t *_service_data = (mc_service_t *)data;
GList *iter = NULL;
return AUL_R_OK;
}
-gboolean _mc_service_process(gpointer data)
+static gboolean __mc_service_process(gpointer data)
{
int length_of_queue = 0;
int send_msg = MEDIA_CONTROLLER_ERROR_NONE;
mc_service_t *_service_data = (mc_service_t*)data;
mc_retvm_if(!_service_data, FALSE, "invalid data");
- mc_retvm_if(!_mc_service_is_valid_queue(_service_data), FALSE, "invalid queue");
+ mc_retvm_if(!__mc_service_is_valid_queue(_service_data), FALSE, "invalid queue");
GQueue *request_queue = _service_data->request->queue;
length_of_queue = g_queue_get_length(request_queue);
goto ERROR;
}
- if (!_mc_service_is_valid_connection(_service_data->connected_apps, request_msg)) {
+ if (!__mc_service_is_valid_connection(_service_data->connected_apps, request_msg)) {
mc_error("Wrong message");
send_msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
goto ERROR;
}
}
} else if (request_msg->msg_type == MC_MSG_CLIENT_SET) {
- send_msg = _mc_service_add_cmd_to_send(&(_service_data->connected_apps), request_msg);
+ send_msg = __mc_service_add_cmd_to_send(&(_service_data->connected_apps), request_msg);
} else if (request_msg->msg_type == MC_MSG_CLIENT_GET) {
- send_msg = _mc_service_remove_cmd_to_send(&(_service_data->connected_apps), request_msg);
+ send_msg = __mc_service_remove_cmd_to_send(&(_service_data->connected_apps), request_msg);
} else if (request_msg->msg_type == MC_MSG_SERVER_CONNECTION) {
if (MC_STRING_VALID(request_msg->msg)) {
- send_msg = _mc_service_add_connection(&(_service_data->connected_apps), request_msg);
+ send_msg = __mc_service_add_connection(&(_service_data->connected_apps), request_msg);
if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
send_msg = mc_db_add_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
} else {
}
} else if (request_msg->msg_type == MC_MSG_SERVER_DISCONNECTION) {
if (MC_STRING_VALID(request_msg->msg)) {
- send_msg = _mc_service_remove_connection(&(_service_data->connected_apps), request_msg);
+ send_msg = __mc_service_remove_connection(&(_service_data->connected_apps), request_msg);
if (send_msg == MEDIA_CONTROLLER_ERROR_NONE)
send_msg = mc_db_remove_application(request_msg->uid, request_msg->msg, request_msg->priv_type);
} else {
return G_SOURCE_CONTINUE;
}
-gboolean _mc_read_service_request_tcp_socket(GIOChannel *src, GIOCondition condition, gpointer data)
+static gboolean __mc_read_service_request_tcp_socket(GIOChannel *src, GIOCondition condition, gpointer data)
{
int sock = -1;
int client_sock = -1;
/* push received message to queue */
if (!_service_data->request->source) {
_service_data->request->source = g_idle_source_new();
- g_source_set_callback(_service_data->request->source, _mc_service_process, _service_data, NULL);
+ g_source_set_callback(_service_data->request->source, __mc_service_process, _service_data, NULL);
g_source_attach(_service_data->request->source, g_main_context_get_thread_default());
}
mc_debug_fenter();
/* Init data */
- ret = _mc_service_init(&mc_service_data);
+ ret = __mc_service_init(&mc_service_data);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
mc_error("Failed to create data");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
return FALSE;
}
ret = __mc_sys_get_uid(&uid);
if (ret < 0) {
mc_debug("Failed to get login user (%d)", ret);
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
return FALSE;
} else {
mc_debug("%d sys get UID[%d]", ret, uid);
}
/* Check database */
- ret = _mc_service_check_db(uid);
+ ret = __mc_service_check_db(uid);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
mc_error("DB is malformed. Start to remove");
ret = mc_db_util_remove_db(uid);
}
/* Reset database */
- ret = _mc_service_reset_db(uid);
+ ret = __mc_service_reset_db(uid);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
mc_error("Failed to reset database");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
return FALSE;
}
ret = mc_ipc_create_server_socket(MC_DB_UPDATE_PORT, &sockfd);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
mc_error("Failed to create socket");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
return FALSE;
}
ret = mc_cynara_enable_credentials_passing(sockfd);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
mc_error("Failed to append socket options");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
close(sockfd);
return FALSE;
}
/* Register app_dead signal handler */
- if (aul_listen_app_dead_signal(_mc_service_app_dead_handler, mc_service_data) != AUL_R_OK) {
+ if (aul_listen_app_dead_signal(__mc_service_app_dead_handler, mc_service_data) != AUL_R_OK) {
mc_error("Failed to register app_dead signal");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
close(sockfd);
return FALSE;
}
source = g_io_create_watch(channel, G_IO_IN);
/* Set callback to be called when socket is readable */
- g_source_set_callback(source, (GSourceFunc)_mc_read_service_request_tcp_socket, mc_service_data, NULL);
+ g_source_set_callback(source, (GSourceFunc)__mc_read_service_request_tcp_socket, mc_service_data, NULL);
g_source_attach(source, context);
g_main_context_push_thread_default(context);
if (aul_listen_app_dead_signal(NULL, NULL) != AUL_R_OK)
mc_error("Failed to unregister app_dead signal");
- _mc_service_deinit(mc_service_data);
+ __mc_service_deinit(mc_service_data);
/* Free resources */
g_io_channel_shutdown(channel, FALSE, NULL);