sensord: in similar with the interval, sensor attributes are separately maintained... 16/64516/1
authorMu-Woong Lee <muwoong.lee@samsung.com>
Mon, 21 Mar 2016 09:48:08 +0000 (18:48 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Fri, 1 Apr 2016 12:10:52 +0000 (21:10 +0900)
Change-Id: If3ced3df21fd9cc84ae55d9d113487efa3d95895
Signed-off-by: Mu-Woong Lee <muwoong.lee@samsung.com>
src/server/command_worker.cpp
src/server/sensor_base.cpp
src/server/sensor_base.h

index 3583223..48a3cb4 100644 (file)
@@ -504,6 +504,7 @@ bool command_worker::cmd_stop(void *payload)
 
        if (m_module->stop()) {
                get_client_info_manager().set_start(m_client_id, m_sensor_id, false);
+               m_module->delete_attribute(m_client_id);
                ret_value = OP_SUCCESS;
        } else {
                _E("Failed to stop sensor [0x%llx] for client [%d]", m_sensor_id, m_client_id);
@@ -778,7 +779,7 @@ bool command_worker::cmd_set_attribute_int(void *payload)
                goto out;
        }
 
-       ret_value = m_module->set_attribute(cmd->attribute, cmd->value);
+       ret_value = m_module->add_attribute(m_client_id, cmd->attribute, cmd->value);
 
 out:
        if (!send_cmd_done(ret_value))
@@ -803,7 +804,7 @@ bool command_worker::cmd_set_attribute_str(void *payload)
                goto out;
        }
 
-       ret_value = m_module->set_attribute(cmd->attribute, cmd->value, cmd->value_len);
+       ret_value = m_module->add_attribute(m_client_id, cmd->attribute, cmd->value, cmd->value_len);
 
 out:
        if (!send_cmd_done(ret_value))
index a08be8c..ad9ef95 100644 (file)
@@ -90,7 +90,22 @@ bool sensor_base::flush(void)
        return true;
 }
 
-int sensor_base::set_attribute(int32_t cmd, int32_t value)
+int sensor_base::add_attribute(int client_id, int32_t attribute, int32_t value)
+{
+       return set_attribute(attribute, value);
+}
+
+int sensor_base::add_attribute(int client_id, int32_t attribute, char *value, int value_size)
+{
+       return set_attribute(attribute, value, value_size);
+}
+
+bool sensor_base::delete_attribute(int client_id)
+{
+       return true;
+}
+
+int sensor_base::set_attribute(int32_t attribute, int32_t value)
 {
        return OP_ERROR;
 }
index 5bc1c10..0e013d1 100644 (file)
@@ -52,8 +52,9 @@ public:
        virtual int get_data(sensor_data_t **data, int *length);
 
        virtual bool flush(void);
-       virtual int set_attribute(int32_t attribute, int32_t value);
-       virtual int set_attribute(int32_t attribute, char *value, int value_size);
+       virtual int add_attribute(int client_id, int32_t attribute, int32_t value);
+       virtual int add_attribute(int client_id, int32_t attribute, char *value, int value_size);
+       virtual bool delete_attribute(int client_id);
 
        /* start/stop */
        bool start(void);
@@ -91,6 +92,9 @@ private:
        unsigned int m_client;
        cmutex m_client_mutex;
 
+       virtual int set_attribute(int32_t attribute, int32_t value);
+       virtual int set_attribute(int32_t attribute, char *value, int value_size);
+
        virtual bool set_interval(unsigned long interval);
        virtual bool set_batch_latency(unsigned long latency);