sensord: rename URIs of sensor type and support get_sensor(uri) properly 59/126659/5
authorkibak.yoon <kibak.yoon@samsung.com>
Mon, 24 Apr 2017 12:48:55 +0000 (21:48 +0900)
committerkibak.yoon <kibak.yoon@samsung.com>
Tue, 25 Apr 2017 11:27:48 +0000 (20:27 +0900)
- compare string before last slash

Change-Id: I2e5f6a317298b96db8d712d5545e17f89f8408e5
Signed-off-by: kibak.yoon <kibak.yoon@samsung.com>
src/client/sensor_manager.cpp
src/sensor/linear_accel/linear_accel_sensor.cpp
src/sensor/rotation_vector/gyro_rv_sensor.cpp
src/sensor/rotation_vector/magnetic_rv_sensor.cpp
src/server/sensor_manager.cpp
src/shared/sensor_utils.cpp

index 11c61d98eb54270541482a938449af5d1b3b7efb..b2917b23174f56bdd0ac8a6d6e0b5c8926c6bc20 100644 (file)
@@ -98,9 +98,14 @@ bool sensor_manager::is_supported(const char *uri)
                return true;
 
        for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
-               std::size_t found = (*it).get_uri().rfind(uri);
+               if ((*it).get_uri() == uri)
+                       return true;
+
+               std::size_t found = (*it).get_uri().find_last_of("/");
+               if (found == std::string::npos)
+                       continue;
 
-               if (found != std::string::npos)
+               if ((*it).get_uri().substr(0, found) == uri)
                        return true;
        }
 
@@ -331,15 +336,23 @@ sensor_info *sensor_manager::get_info(const char *uri)
                return &m_sensors[0];
 
        for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
-               std::size_t found = (*it).get_uri().rfind(uri);
-
-               if (found == std::string::npos)
+               if ((*it).get_uri() != uri)
                        continue;
 
-               if ((*it).get_privilege().empty())
+               if ((*it).get_privilege().empty() || has_privilege((*it).get_uri()))
                        return &*it;
 
-               if (has_privilege((*it).get_uri()))
+               return NULL;
+       }
+
+       for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
+               std::size_t found = (*it).get_uri().find_last_of("/");
+               if (found == std::string::npos)
+                       continue;
+               if ((*it).get_uri().substr(0, found) != uri)
+                       continue;
+
+               if ((*it).get_privilege().empty() || has_privilege((*it).get_uri()))
                        return &*it;
        }
 
@@ -355,17 +368,23 @@ std::vector<sensor_info *> sensor_manager::get_infos(const char *uri)
                all = true;
 
        for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
-               std::size_t found = (*it).get_uri().rfind(uri);
-
-               if (!all && found == std::string::npos)
+               if ((*it).get_uri() != uri)
                        continue;
 
-               if ((*it).get_privilege().empty()) {
+               if ((*it).get_privilege().empty() || has_privilege((*it).get_uri()))
                        infos.push_back(&*it);
+
+               return infos;
+       }
+
+       for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
+               std::size_t found = (*it).get_uri().find_last_of("/");
+               if (!all && found == std::string::npos)
+                       continue;
+               if (!all && (*it).get_uri().substr(0, found) != uri)
                        continue;
-               }
 
-               if (has_privilege((*it).get_uri()))
+               if ((*it).get_privilege().empty() || has_privilege((*it).get_uri()))
                        infos.push_back(&*it);
        }
 
index 27cce33ffcbb8ad39fae2908b762dff9e8e682e2..00e0bb7c2984a0c47245732787bb9982dc9c71fc 100644 (file)
@@ -23,7 +23,7 @@
 #include <sensor_types.h>
 #include <fusion_util.h>
 
-#define NAME_SENSOR "http://tizen.org/sensor/linear_accel/tizen_default"
+#define NAME_SENSOR "http://tizen.org/sensor/linear_acceleration/tizen_default"
 #define NAME_VENDOR "tizen.org"
 
 #define SRC_ID_ACC   0x1
index ccafce85dd8464fef73abb234f53d0a1035f879a..74e0e277eb01ed0c2664e54c7afc97286746cca2 100644 (file)
@@ -23,7 +23,7 @@
 #include <sensor_types.h>
 #include <fusion_util.h>
 
-#define NAME_SENSOR  "http://tizen.org/sensor/gyro_rotation_vector/tizen_default"
+#define NAME_SENSOR  "http://tizen.org/sensor/gyroscope_rotation_vector/tizen_default"
 #define NAME_VENDOR  "tizen.org"
 
 #define SRC_ID_ACC   0x1
index fd9ad36076f461756cad332f3db3ea9c76655ed5..2d480d2dde4dc56d24f22bc02b98243be7e85c5f 100644 (file)
@@ -23,7 +23,7 @@
 #include <sensor_types.h>
 #include <fusion_util.h>
 
-#define NAME_SENSOR  "http://tizen.org/sensor/mag_rotation_vector/tizen_default"
+#define NAME_SENSOR  "http://tizen.org/sensor/geomagnetic_rotation_vector/tizen_default"
 #define NAME_VENDOR  "tizen.org"
 
 #define SRC_ID_ACC   0x1
index 8d79ed0097842e1ce324b1c476f7ecc1b59b6463..601c5ef78cf3b9b06fcc020cd6ce919fd97d02e7 100644 (file)
@@ -205,10 +205,15 @@ void sensor_manager::deregister_channel(ipc::channel *ch)
 
 sensor_handler *sensor_manager::get_sensor_by_type(const std::string uri)
 {
-       auto it = m_sensors.begin();
-       for (; it != m_sensors.end(); ++it) {
-               std::size_t found = it->first.rfind(uri);
-               if (found != std::string::npos)
+       for (auto it = m_sensors.begin(); it != m_sensors.end(); ++it) {
+               if (it->first == uri)
+                       return it->second;
+
+               std::size_t found = it->first.find_last_of("/");
+               if (found == std::string::npos)
+                       continue;
+
+               if (it->first.substr(0, found) == uri)
                        return it->second;
        }
 
index 817eb31b02e77e317a7f5f32007653936fdff615..8313c4d53646b302c259f25d6467652469c236df 100644 (file)
@@ -40,8 +40,8 @@ static std::map<sensor_type_t, const char *> types = {
        {ALL_SENSOR,                     "http://tizen.org/sensor/all"},
        {ACCELEROMETER_SENSOR,           "http://tizen.org/sensor/accelerometer"},
        {GRAVITY_SENSOR,                 "http://tizen.org/sensor/gravity"},
-       {LINEAR_ACCEL_SENSOR,            "http://tizen.org/sensor/linear_accel"},
-       {GEOMAGNETIC_SENSOR,             "http://tizen.org/sensor/geomagnetic"},
+       {LINEAR_ACCEL_SENSOR,            "http://tizen.org/sensor/linear_acceleration"},
+       {GEOMAGNETIC_SENSOR,             "http://tizen.org/sensor/magnetic"},
        {ROTATION_VECTOR_SENSOR,         "http://tizen.org/sensor/rotation_vector"},
        {ORIENTATION_SENSOR,             "http://tizen.org/sensor/orientation"},
        {GYROSCOPE_SENSOR,               "http://tizen.org/sensor/gyroscope"},
@@ -52,13 +52,13 @@ static std::map<sensor_type_t, const char *> types = {
        {TEMPERATURE_SENSOR,             "http://tizen.org/sensor/temperature"},
        {HUMIDITY_SENSOR,                "http://tizen.org/sensor/humidity"},
        {HRM_SENSOR,                     "http://tizen.org/sensor/heart_rate_monitor"},
-       {HRM_LED_GREEN_SENSOR,           "http://tizen.org/sensor/hrm_led_green"},
-       {HRM_LED_IR_SENSOR,              "http://tizen.org/sensor/hrm_led_ir"},
-       {HRM_LED_RED_SENSOR,             "http://tizen.org/sensor/hrm_led_red"},
-       {GYROSCOPE_UNCAL_SENSOR,         "http://tizen.org/sensor/gyro_uncalibrated"},
-       {GEOMAGNETIC_UNCAL_SENSOR,       "http://tizen.org/sensor/mag_uncalibrated"},
-       {GYROSCOPE_RV_SENSOR,            "http://tizen.org/sensor/gyro_rotation_vector"},
-       {GEOMAGNETIC_RV_SENSOR,          "http://tizen.org/sensor/mag_rotation_vector"},
+       {HRM_LED_GREEN_SENSOR,           "http://tizen.org/sensor/heart_rate_monitor.led_green"},
+       {HRM_LED_IR_SENSOR,              "http://tizen.org/sensor/heart_rate_monitor.led_ir"},
+       {HRM_LED_RED_SENSOR,             "http://tizen.org/sensor/heart_rate_monitor.led_red"},
+       {GYROSCOPE_UNCAL_SENSOR,         "http://tizen.org/sensor/gyroscope.uncalibrated"},
+       {GEOMAGNETIC_UNCAL_SENSOR,       "http://tizen.org/sensor/geomagnetic.uncalibrated"},
+       {GYROSCOPE_RV_SENSOR,            "http://tizen.org/sensor/gyroscope_rotation_vector"},
+       {GEOMAGNETIC_RV_SENSOR,          "http://tizen.org/sensor/geomagnetic_rotation_vector"},
 
        {HUMAN_PEDOMETER_SENSOR,         "http://tizen.org/sensor/human_pedometer"},
        {HUMAN_SLEEP_MONITOR_SENSOR,     "http://tizen.org/sensor/human_sleep_monitor"},