From: Boram Bae Date: Wed, 25 Mar 2020 12:11:25 +0000 (+0900) Subject: Add set_fusion_sensor_handler to fusion_sensor X-Git-Tag: submit/tizen/20200408.024352~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9301f562fae427a5b6a8a573e4b05e9029bafb99;p=platform%2Fcore%2Fsystem%2Fsensord.git Add set_fusion_sensor_handler to fusion_sensor Change-Id: I30f6a713ca4ee09d5dcd545ca10b995d8a6a9643 Signed-off-by: Boram Bae --- diff --git a/include/fusion_sensor.h b/include/fusion_sensor.h index f772e3d6..89eabd62 100644 --- a/include/fusion_sensor.h +++ b/include/fusion_sensor.h @@ -41,6 +41,10 @@ #define OP_DEFAULT 1 #endif +namespace sensor { +class fusion_sensor_handler; +} + /* * Create sensor */ @@ -74,7 +78,7 @@ public: { return OP_DEFAULT; } -; + virtual int stop(observer_h ob) { return OP_DEFAULT; @@ -104,6 +108,10 @@ public: { return OP_DEFAULT; } + + virtual void set_fusion_sensor_handler(sensor::fusion_sensor_handler* handler) + { + } }; #endif /* __FUSION_SENSOR_H__ */ diff --git a/src/server/fusion_sensor_handler.cpp b/src/server/fusion_sensor_handler.cpp index 4a85de31..2e3c6837 100644 --- a/src/server/fusion_sensor_handler.cpp +++ b/src/server/fusion_sensor_handler.cpp @@ -18,6 +18,7 @@ */ #include "fusion_sensor_handler.h" +#include "fusion_sensor.h" #include #include @@ -85,7 +86,7 @@ int fusion_sensor_handler::start(sensor_observer *ob) _I("Started[%s]", m_info.get_uri().c_str()); - return start_internal(); + return start_required_sensors(); } int fusion_sensor_handler::stop(sensor_observer *ob) @@ -106,7 +107,7 @@ int fusion_sensor_handler::stop(sensor_observer *ob) _I("Stopped[%s]", m_info.get_uri().c_str()); - return stop_internal(); + return stop_required_sensors(); } int fusion_sensor_handler::get_min_interval(void) @@ -256,7 +257,7 @@ int fusion_sensor_handler::flush(sensor_observer *ob) return OP_SUCCESS; } -int fusion_sensor_handler::start_internal(void) +int fusion_sensor_handler::start_required_sensors(void) { auto it = m_required_sensors.begin(); for (; it != m_required_sensors.end(); ++it) { @@ -267,7 +268,7 @@ int fusion_sensor_handler::start_internal(void) return OP_SUCCESS; } -int fusion_sensor_handler::stop_internal(void) +int fusion_sensor_handler::stop_required_sensors(void) { auto it = m_required_sensors.begin(); for (; it != m_required_sensors.end(); ++it) { diff --git a/src/server/fusion_sensor_handler.h b/src/server/fusion_sensor_handler.h index cdccf1da..9a7e4187 100644 --- a/src/server/fusion_sensor_handler.h +++ b/src/server/fusion_sensor_handler.h @@ -22,12 +22,13 @@ #include #include -#include #include #include "sensor_handler.h" #include "sensor_observer.h" +class fusion_sensor; + namespace sensor { class required_sensor { @@ -69,9 +70,9 @@ public: int flush(sensor_observer *ob); int get_data(sensor_data_t **data, int *len); + int start_required_sensors(void); + int stop_required_sensors(void); private: - int start_internal(void); - int stop_internal(void); int set_interval_internal(int32_t interval); int set_batch_latency_internal(int32_t latency); int set_attribute_internal(int32_t attr, int32_t value); diff --git a/src/server/sensor_manager.cpp b/src/server/sensor_manager.cpp index 64413ba1..e1826d49 100644 --- a/src/server/sensor_manager.cpp +++ b/src/server/sensor_manager.cpp @@ -315,6 +315,8 @@ void sensor_manager::create_fusion_sensors(fusion_sensor_registry_t &fsensors) sensor_info sinfo = fsensor->get_sensor_info(); m_sensors[sinfo.get_uri()] = fsensor; + + (*it)->set_fusion_sensor_handler(fsensor); } }