Add set_fusion_sensor_handler to fusion_sensor 03/228803/1
authorBoram Bae <boram21.bae@samsung.com>
Wed, 25 Mar 2020 12:11:25 +0000 (21:11 +0900)
committerBoram Bae <boram21.bae@samsung.com>
Thu, 26 Mar 2020 00:48:33 +0000 (09:48 +0900)
Change-Id: I30f6a713ca4ee09d5dcd545ca10b995d8a6a9643
Signed-off-by: Boram Bae <boram21.bae@samsung.com>
include/fusion_sensor.h
src/server/fusion_sensor_handler.cpp
src/server/fusion_sensor_handler.h
src/server/sensor_manager.cpp

index f772e3d..89eabd6 100644 (file)
 #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__ */
index 4a85de3..2e3c683 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include "fusion_sensor_handler.h"
+#include "fusion_sensor.h"
 
 #include <message.h>
 #include <sensor_log.h>
@@ -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) {
index cdccf1d..9a7e418 100644 (file)
 
 #include <message.h>
 #include <sensor_types.h>
-#include <fusion_sensor.h>
 #include <unordered_map>
 
 #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);
index 64413ba..e1826d4 100644 (file)
@@ -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);
        }
 }