sensord: remove command when manager/listener/provider are disconnected 16/129816/2
authorkibak.yoon <kibak.yoon@samsung.com>
Thu, 18 May 2017 06:37:34 +0000 (15:37 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Fri, 19 May 2017 04:26:18 +0000 (13:26 +0900)
- 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 <kibak.yoon@samsung.com>
src/client/sensor_listener.cpp
src/client/sensor_manager.cpp
src/client/sensor_provider.cpp
src/server/server_channel_handler.cpp
src/shared/command_types.h

index 0e66ef7..9eedd6d 100644 (file)
@@ -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;
 
index 43fcb41..760a90b 100644 (file)
@@ -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");
 }
 
index f2eae8b..50772d5 100644 (file)
@@ -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;
 
index f20008c..fbcb6cb 100644 (file)
@@ -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);
index 6ea1523..a994f29 100644 (file)
@@ -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;