Fix error in sensor cache 18/271818/1
authorTaeminYeom <taemin.yeom@samsung.com>
Mon, 28 Feb 2022 08:14:44 +0000 (17:14 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Wed, 2 Mar 2022 02:37:40 +0000 (02:37 +0000)
-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>
(cherry picked from commit 192f18f3930bff141444a68af32239f62c1b0bb7)

src/client/sensor_listener.cpp
src/server/sensor_handler.cpp

index 12e2d99..ad5be48 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 6c1de44..dee6b97 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;
 }