Fix error in sensor cache 62/271762/2
authorTaeminYeom <taemin.yeom@samsung.com>
Mon, 28 Feb 2022 08:14:44 +0000 (17:14 +0900)
committerTaeminYeom <taemin.yeom@samsung.com>
Wed, 2 Mar 2022 02:28:03 +0000 (11:28 +0900)
-Add error handling when there is no data
-Change to clear sensor data cache after getting cache data

Change-Id: I5967fe57298e7f90b9493a0f9e56eaec8778efbf
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
src/client/sensor_listener.cpp
src/server/sensor_handler.cpp

index 12e2d99530ec58efcd08a685669133a5ca97ce66..ad5be4826024cfc83bc7ba160d8fc4842284a434 100644 (file)
@@ -649,14 +649,17 @@ int sensor_listener::get_sensor_data(sensor_data_t *data)
        m_cmd_channel->send_sync(msg);
        m_cmd_channel->read_sync(reply);
 
+       if (reply.header()->err < 0) {
+               return OP_ERROR;
+       }
+
        reply.disclose((char *)&buf, sizeof(buf));
        int size = sizeof(sensor_data_t);
 
-       if (buf.len > size || buf.len < 0) {
+       if (buf.len > size || buf.len <= 0) {
                data->accuracy = -1;
                data->value_count = 0;
-               /* TODO: it should return OP_ERROR */
-               return OP_SUCCESS;
+               return OP_ERROR;
        }
 
        memcpy(data, &buf.data, buf.len);
index 6c1de449963b5a0dc8e618ce7e5bd7121cb5f209..dee6b974e1822b5f869ca186b307cdc0fcf22bf0 100644 (file)
@@ -125,6 +125,7 @@ int sensor_handler::get_cache(sensor_data_t **data, int *len)
        *len = size;
        *data = (sensor_data_t *)temp;
 
+       m_sensor_data_cache.clear();
        return 0;
 }