From: kibak.yoon Date: Tue, 15 Mar 2016 02:45:34 +0000 (+0900) Subject: sensord: call on_event() after invoking sensor event from fd X-Git-Tag: submit/tizen/20160315.065646^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bfba23f53c8b4786f8f99e7292519d4b20c4535e;p=platform%2Fcore%2Fsystem%2Fsensord.git sensord: call on_event() after invoking sensor event from fd Change-Id: I616af576afe22cb512cfc3f8c5be76c458af7e8d Signed-off-by: kibak.yoon --- diff --git a/src/server/physical_sensor.cpp b/src/server/physical_sensor.cpp index 49858f4a..79640651 100644 --- a/src/server/physical_sensor.cpp +++ b/src/server/physical_sensor.cpp @@ -77,6 +77,11 @@ int physical_sensor::get_poll_fd() return m_sensor_device->get_poll_fd(); } +bool physical_sensor::on_event(const sensor_data_t *data, int remains) +{ + return true; +} + bool physical_sensor::read_fd(std::vector &ids) { AUTOLOCK(m_mutex); diff --git a/src/server/physical_sensor.h b/src/server/physical_sensor.h index a2e87637..393e4d78 100644 --- a/src/server/physical_sensor.h +++ b/src/server/physical_sensor.h @@ -40,6 +40,8 @@ public: int get_poll_fd(); + virtual bool on_event(const sensor_data_t *data, int remains); + virtual bool read_fd(std::vector &ids); virtual int get_data(sensor_data_t **data, int *length); virtual bool flush(void); diff --git a/src/server/sensor_event_poller.cpp b/src/server/sensor_event_poller.cpp index af7d8cd0..a7ec9a4d 100644 --- a/src/server/sensor_event_poller.cpp +++ b/src/server/sensor_event_poller.cpp @@ -137,6 +137,12 @@ bool sensor_event_poller::process_event(int fd, const std::vector &ids break; } + if (!sensor->on_event(data, remains)) { + free(event); + free(data); + break; + } + event->sensor_id = sensor->get_id(); event->event_type = sensor->get_event_type(); event->data_length = data_length;