sensor_manager::sensor_manager()
: m_client(NULL)
-, m_channel(NULL)
+, m_cmd_channel(NULL)
+, m_mon_channel(NULL)
, m_connected(false)
, m_handler(NULL)
{
bool sensor_manager::connect_channel(void)
{
- m_channel = m_client->connect(m_handler, &m_loop);
- retvm_if(!m_channel, false, "Failed to connect to server");
-
ipc::message msg;
- msg.set_type(CMD_MANAGER_CONNECT);
- m_channel->send_sync(&msg);
- m_channel->read_sync(msg);
- if (msg.header()->err < 0) {
- /* TODO: if failed, disconnect channel */
- return false;
- }
+ m_cmd_channel = m_client->connect(NULL);
+ retvm_if(!m_cmd_channel, false, "Failed to connect to server");
+
+ m_mon_channel = m_client->connect(m_handler, &m_loop);
+ retvm_if(!m_mon_channel, false, "Failed to connect to server");
+
+ msg.set_type(CMD_MANAGER_CONNECT);
+ m_mon_channel->send_sync(&msg);
m_connected.store(true);
ipc::message reply;
msg.set_type(CMD_MANAGER_DISCONNECT);
- m_channel->send_sync(&msg);
- m_channel->read_sync(reply);
+ m_mon_channel->send_sync(&msg);
+ m_mon_channel->read_sync(reply);
retm_if(reply.header()->err < 0, "Failed to disconnect");
- m_connected.store(false);
- m_channel->disconnect();
+ m_mon_channel->disconnect();
- delete m_channel;
- m_channel = NULL;
+ delete m_mon_channel;
+ m_mon_channel = NULL;
+ m_cmd_channel->disconnect();
+ delete m_cmd_channel;
+ m_cmd_channel = NULL;
+
+ m_connected.store(false);
_D("Disconnected");
}
msg.set_type(CMD_MANAGER_SENSOR_LIST);
- ret = m_channel->send_sync(&msg);
+ ret = m_cmd_channel->send_sync(&msg);
retvm_if(!ret, false, "Failed to send message");
- ret = m_channel->read_sync(reply);
+ ret = m_cmd_channel->read_sync(reply);
retvm_if(!ret, false, "Failed to receive message");
reply.disclose(buf);
memcpy(buf.sensor, uri.c_str(), uri.size());
msg.enclose((const char *)&buf, sizeof(buf));
- ret = m_channel->send_sync(&msg);
+ ret = m_cmd_channel->send_sync(&msg);
retvm_if(!ret, false, "Failed to send message");
- ret = m_channel->read_sync(reply);
+ ret = m_cmd_channel->read_sync(reply);
retvm_if(!ret, false, "Failed to receive message");
if (reply.header()->err == OP_SUCCESS)