From: kibak.yoon Date: Thu, 18 May 2017 06:37:34 +0000 (+0900) Subject: sensord: remove command when manager/listener/provider are disconnected X-Git-Tag: accepted/tizen/unified/20170519.200727^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74e889e2b43586b60dce12fbd6ceba49df219a04;p=platform%2Fcore%2Fsystem%2Fsensord.git sensord: remove command when manager/listener/provider are disconnected - if channel is disconnected(), server releases their resources automatically. - so it is not neccessary to release resource by sending command. Change-Id: Ifd4ed14b20429def377f10d5a6d5dd3da18efc86 Signed-off-by: kibak.yoon --- diff --git a/src/client/sensor_listener.cpp b/src/client/sensor_listener.cpp index 0e66ef7..9eedd6d 100644 --- a/src/client/sensor_listener.cpp +++ b/src/client/sensor_listener.cpp @@ -182,15 +182,7 @@ void sensor_listener::disconnect(void) ret_if(!is_connected()); m_connected.store(false); - ipc::message msg; - ipc::message reply; - - msg.set_type(CMD_LISTENER_DISCONNECT); - m_evt_channel->send_sync(&msg); - - m_evt_channel->read_sync(reply); m_evt_channel->disconnect(); - delete m_evt_channel; m_evt_channel = NULL; diff --git a/src/client/sensor_manager.cpp b/src/client/sensor_manager.cpp index 43fcb41..760a90b 100644 --- a/src/client/sensor_manager.cpp +++ b/src/client/sensor_manager.cpp @@ -222,17 +222,9 @@ bool sensor_manager::connect(void) void sensor_manager::disconnect(void) { ret_if(!is_connected()); - - ipc::message msg; - ipc::message reply; - msg.set_type(CMD_MANAGER_DISCONNECT); - - m_mon_channel->send_sync(&msg); - m_mon_channel->read_sync(reply); - retm_if(reply.header()->err < 0, "Failed to disconnect"); + m_connected.store(false); m_mon_channel->disconnect(); - delete m_mon_channel; m_mon_channel = NULL; @@ -240,7 +232,6 @@ void sensor_manager::disconnect(void) delete m_cmd_channel; m_cmd_channel = NULL; - m_connected.store(false); _D("Disconnected"); } diff --git a/src/client/sensor_provider.cpp b/src/client/sensor_provider.cpp index f2eae8b..50772d5 100644 --- a/src/client/sensor_provider.cpp +++ b/src/client/sensor_provider.cpp @@ -147,16 +147,7 @@ bool sensor_provider::disconnect(void) retv_if(!is_connected(), false); m_connected.store(false); - ipc::message msg(OP_SUCCESS); - ipc::message reply; - - msg.set_type(CMD_PROVIDER_DISCONNECT); - - m_channel->send_sync(&msg); - m_channel->read_sync(reply); - m_channel->disconnect(); - delete m_channel; m_channel = NULL; diff --git a/src/server/server_channel_handler.cpp b/src/server/server_channel_handler.cpp index f20008c..fbcb6cb 100644 --- a/src/server/server_channel_handler.cpp +++ b/src/server/server_channel_handler.cpp @@ -81,14 +81,10 @@ void server_channel_handler::read(channel *ch, message &msg) switch (msg.type()) { case CMD_MANAGER_CONNECT: err = manager_connect(ch, msg); break; - case CMD_MANAGER_DISCONNECT: - err = manager_disconnect(ch, msg); break; case CMD_MANAGER_SENSOR_LIST: err = manager_get_sensor_list(ch, msg); break; case CMD_LISTENER_CONNECT: err = listener_connect(ch, msg); break; - case CMD_LISTENER_DISCONNECT: - err = listener_disconnect(ch, msg); break; case CMD_LISTENER_START: err = listener_start(ch, msg); break; case CMD_LISTENER_STOP: @@ -101,8 +97,6 @@ void server_channel_handler::read(channel *ch, message &msg) err = listener_get_data(ch, msg); break; case CMD_PROVIDER_CONNECT: err = provider_connect(ch, msg); break; - case CMD_PROVIDER_DISCONNECT: - err = provider_disconnect(ch, msg); break; case CMD_PROVIDER_PUBLISH: err = provider_publish(ch, msg); break; case CMD_HAS_PRIVILEGE: @@ -122,12 +116,6 @@ int server_channel_handler::manager_connect(channel *ch, message &msg) return OP_SUCCESS; } -int server_channel_handler::manager_disconnect(channel *ch, message &msg) -{ - m_manager->deregister_channel(ch); - return send_reply(ch, OP_SUCCESS); -} - int server_channel_handler::manager_get_sensor_list(channel *ch, message &msg) { ipc::message reply; @@ -177,25 +165,6 @@ int server_channel_handler::listener_connect(channel *ch, message &msg) return OP_SUCCESS; } -int server_channel_handler::listener_disconnect(channel *ch, message &msg) -{ - auto it = m_listener_ids.find(ch); - retv_if(it == m_listener_ids.end(), -EINVAL); - - uint32_t id = it->second; - - retvm_if(!has_privileges(ch->get_fd(), m_listeners[id]->get_required_privileges()), - -EACCES, "Permission denied"); - - delete m_listeners[id]; - m_listeners.erase(id); - m_listener_ids.erase(ch); - - _D("Disconnected sensor_listener[%u]", id); - - return send_reply(ch, OP_SUCCESS); -} - int server_channel_handler::listener_start(channel *ch, message &msg) { cmd_listener_start_t buf; @@ -335,19 +304,6 @@ int server_channel_handler::provider_connect(channel *ch, message &msg) return send_reply(ch, OP_SUCCESS); } -int server_channel_handler::provider_disconnect(channel *ch, message &msg) -{ - auto it = m_app_sensors.find(ch); - retv_if(it == m_app_sensors.end(), -EINVAL); - - sensor_info info = it->second->get_sensor_info(); - - m_manager->deregister_sensor(info.get_uri()); - m_app_sensors.erase(ch); - - return send_reply(ch, OP_SUCCESS); -} - int server_channel_handler::provider_publish(channel *ch, message &msg) { auto it = m_app_sensors.find(ch); diff --git a/src/shared/command_types.h b/src/shared/command_types.h index 6ea1523..a994f29 100644 --- a/src/shared/command_types.h +++ b/src/shared/command_types.h @@ -33,7 +33,6 @@ enum cmd_type_e { /* Manager */ CMD_MANAGER_CONNECT = 0x100, - CMD_MANAGER_DISCONNECT, CMD_MANAGER_SENSOR_LIST, CMD_MANAGER_SENSOR_ADDED, CMD_MANAGER_SENSOR_REMOVED, @@ -42,7 +41,6 @@ enum cmd_type_e { CMD_LISTENER_EVENT = 0x200, CMD_LISTENER_ACC_EVENT, CMD_LISTENER_CONNECT, - CMD_LISTENER_DISCONNECT, CMD_LISTENER_START, CMD_LISTENER_STOP, CMD_LISTENER_ATTR_INT, @@ -51,7 +49,6 @@ enum cmd_type_e { /* Provider */ CMD_PROVIDER_CONNECT = 0x300, - CMD_PROVIDER_DISCONNECT, CMD_PROVIDER_START, CMD_PROVIDER_STOP, CMD_PROVIDER_ATTR_INT, @@ -75,10 +72,6 @@ typedef struct { typedef struct { int listener_id; -} cmd_listener_disconnect_t; - -typedef struct { - int listener_id; } cmd_listener_start_t; typedef struct { @@ -109,9 +102,6 @@ typedef struct { } cmd_provider_connect_t; typedef struct { -} cmd_provider_disconnect_t; - -typedef struct { sensor_data_t data; } cmd_provider_publish_t;