4 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include "sensor_listener.h"
22 #include <channel_handler.h>
23 #include <sensor_log.h>
24 #include <sensor_types.h>
25 #include <command_types.h>
26 #include <ipc_client.h>
28 using namespace sensor;
30 class listener_handler : public ipc::channel_handler
33 listener_handler(sensor_listener *listener)
34 : m_listener(listener)
36 void connected(ipc::channel *ch) {}
37 void disconnected(ipc::channel *ch) {}
38 void read(ipc::channel *ch, ipc::message &msg) {}
39 void read_complete(ipc::channel *ch) {}
40 void error_caught(ipc::channel *ch, int error) {}
43 sensor_listener *m_listener;
46 sensor_listener::sensor_listener(sensor_t sensor)
48 , m_sensor(reinterpret_cast<sensor_info *>(sensor))
60 sensor_listener::~sensor_listener()
65 bool sensor_listener::init(void)
70 void sensor_listener::deinit(void)
74 int sensor_listener::get_id(void)
79 sensor_t sensor_listener::get_sensor(void)
81 return static_cast<sensor_t>(m_sensor);
84 void sensor_listener::restore(void)
86 _D("Restored listener[%d]", get_id());
89 bool sensor_listener::connect(void)
91 _I("Listener ID[%d]", get_id());
96 void sensor_listener::disconnect(void)
98 _I("Disconnected[%d]", get_id());
101 bool sensor_listener::is_connected(void)
103 return m_connected.load();
106 ipc::channel_handler *sensor_listener::get_event_handler(void)
108 return m_evt_handler;
111 void sensor_listener::set_event_handler(ipc::channel_handler *handler)
113 m_evt_handler = handler;
116 void sensor_listener::unset_event_handler(void)
118 delete m_evt_handler;
119 m_evt_handler = NULL;
122 ipc::channel_handler *sensor_listener::get_accuracy_handler(void)
124 return m_acc_handler;
127 void sensor_listener::set_accuracy_handler(ipc::channel_handler *handler)
129 m_acc_handler = handler;
132 void sensor_listener::unset_accuracy_handler(void)
134 m_acc_handler = NULL;
137 int sensor_listener::start(void)
142 int sensor_listener::stop(void)
147 int sensor_listener::get_interval(void)
152 int sensor_listener::get_max_batch_latency(void)
157 int sensor_listener::get_pause_policy(void)
162 int sensor_listener::get_passive_mode(void)
167 int sensor_listener::set_interval(unsigned int interval)
172 int sensor_listener::set_max_batch_latency(unsigned int max_batch_latency)
177 int sensor_listener::set_passive_mode(bool passive)
182 int sensor_listener::flush(void)
187 int sensor_listener::set_attribute(int attribute, int value)
192 int sensor_listener::set_attribute(int attribute, const char *value, int len)
197 int sensor_listener::get_sensor_data(sensor_data_t *data)