summaryrefslogtreecommitdiffstats
path: root/src/RemoteControl.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2018-04-10 22:38:56 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2018-04-10 22:38:56 +0200
commit766f9f420aae19ecf282a32e7f9e2add275d9b14 (patch)
tree8c825ca608a9671e2647f5d3ecb6e41d67079412 /src/RemoteControl.cpp
parent975c4b40a2e5fbe8f5566f21c49db96a5a939127 (diff)
downloaddabmod-766f9f420aae19ecf282a32e7f9e2add275d9b14.tar.gz
dabmod-766f9f420aae19ecf282a32e7f9e2add275d9b14.tar.bz2
dabmod-766f9f420aae19ecf282a32e7f9e2add275d9b14.zip
Make telnet RC compile-time dependant on boost
Diffstat (limited to 'src/RemoteControl.cpp')
-rw-r--r--src/RemoteControl.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/RemoteControl.cpp b/src/RemoteControl.cpp
index a346386..6e6a7e9 100644
--- a/src/RemoteControl.cpp
+++ b/src/RemoteControl.cpp
@@ -28,16 +28,22 @@
#include <string>
#include <iostream>
#include <string>
-#include <boost/asio.hpp>
-#include <boost/thread.hpp>
-
+#include <thread>
+#if defined(HAVE_BOOST)
+# include <boost/asio.hpp>
+# include <boost/thread.hpp>
+#endif
#include "RemoteControl.h"
+#if defined(HAVE_BOOST)
using boost::asio::ip::tcp;
+#endif
+
using namespace std;
RemoteControllers rcs;
+#if defined(HAVE_BOOST)
RemoteControllerTelnet::~RemoteControllerTelnet()
{
m_active = false;
@@ -47,10 +53,11 @@ RemoteControllerTelnet::~RemoteControllerTelnet()
void RemoteControllerTelnet::restart()
{
- m_restarter_thread = boost::thread(
+ m_restarter_thread = std::thread(
&RemoteControllerTelnet::restart_thread,
this, 0);
}
+#endif
RemoteControllable::~RemoteControllable() {
rcs.remove_controllable(this);
@@ -89,6 +96,7 @@ void RemoteControllers::set_param(
return controllable->set_parameter(param, value);
}
+#if defined(HAVE_BOOST)
// This runs in a separate thread, because
// it would take too long to be done in the main loop
// thread.
@@ -99,7 +107,7 @@ void RemoteControllerTelnet::restart_thread(long)
m_child_thread.join();
- m_child_thread = boost::thread(&RemoteControllerTelnet::process, this, 0);
+ m_child_thread = std::thread(&RemoteControllerTelnet::process, this, 0);
}
void RemoteControllerTelnet::handle_accept(
@@ -319,7 +327,7 @@ void RemoteControllerTelnet::reply(tcp::socket& socket, string message)
boost::asio::transfer_all(),
ignored_error);
}
-
+#endif
#if defined(HAVE_ZEROMQ)
@@ -327,15 +335,14 @@ RemoteControllerZmq::~RemoteControllerZmq() {
m_active = false;
m_fault = false;
- if (!m_endpoint.empty()) {
- m_child_thread.interrupt();
+ if (m_child_thread.joinable()) {
m_child_thread.join();
}
}
void RemoteControllerZmq::restart()
{
- m_restarter_thread = boost::thread(&RemoteControllerZmq::restart_thread, this);
+ m_restarter_thread = std::thread(&RemoteControllerZmq::restart_thread, this);
}
// This runs in a separate thread, because
@@ -345,12 +352,11 @@ void RemoteControllerZmq::restart_thread()
{
m_active = false;
- if (!m_endpoint.empty()) {
- m_child_thread.interrupt();
+ if (m_child_thread.joinable()) {
m_child_thread.join();
}
- m_child_thread = boost::thread(&RemoteControllerZmq::process, this);
+ m_child_thread = std::thread(&RemoteControllerZmq::process, this);
}
void RemoteControllerZmq::recv_all(zmq::socket_t& pSocket, std::vector<std::string> &message)
@@ -479,13 +485,9 @@ void RemoteControllerZmq::process()
"Unsupported command. commands: list, show, get, set");
}
}
-
- // check if thread is interrupted
- boost::this_thread::interruption_point();
}
repSocket.close();
}
- catch (boost::thread_interrupted&) {}
catch (zmq::error_t &e) {
etiLog.level(error) << "ZMQ RC error: " << std::string(e.what());
}