diff options
-rw-r--r-- | src/DabMultiplexer.cpp | 14 | ||||
-rw-r--r-- | src/DabMultiplexer.h | 7 | ||||
-rw-r--r-- | src/DabMux.cpp | 10 | ||||
-rw-r--r-- | src/ManagementServer.cpp | 70 | ||||
-rw-r--r-- | src/ManagementServer.h | 14 |
5 files changed, 5 insertions, 110 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp index a557db0..c560c96 100644 --- a/src/DabMultiplexer.cpp +++ b/src/DabMultiplexer.cpp @@ -83,20 +83,6 @@ DabMultiplexer::DabMultiplexer( "Set to 1 to use the new carousel"); } -void DabMultiplexer::update_config(boost::property_tree::ptree pt) -{ - ensemble_next = std::make_shared<dabEnsemble>(); - - m_pt_next = pt; - - reconfigure(); -} - -void DabMultiplexer::reconfigure() -{ - parse_ptree(m_pt_next, ensemble_next, m_rc); -} - void DabMultiplexer::set_edi_config(const edi_configuration_t& new_edi_conf) { edi_conf = new_edi_conf; diff --git a/src/DabMultiplexer.h b/src/DabMultiplexer.h index 88e0cb2..ab56090 100644 --- a/src/DabMultiplexer.h +++ b/src/DabMultiplexer.h @@ -66,8 +66,6 @@ class DabMultiplexer : public RemoteControllable { void print_info(void); - void update_config(boost::property_tree::ptree pt); - void set_edi_config(const edi_configuration_t& new_edi_conf); /* Remote control */ @@ -81,7 +79,6 @@ class DabMultiplexer : public RemoteControllable { void prepare_subchannels(void); void prepare_services_components(void); void prepare_data_inputs(void); - void reconfigure(void); boost::property_tree::ptree m_pt; std::shared_ptr<BaseRemoteController> m_rc; @@ -98,10 +95,6 @@ class DabMultiplexer : public RemoteControllable { std::shared_ptr<dabEnsemble> ensemble; - // Multiplex reconfiguration requires two sets of configurations - boost::property_tree::ptree m_pt_next; - std::shared_ptr<dabEnsemble> ensemble_next; - ClockTAI m_clock_tai; #if HAVE_OUTPUT_EDI diff --git a/src/DabMux.cpp b/src/DabMux.cpp index 79b46f1..3a4a465 100644 --- a/src/DabMux.cpp +++ b/src/DabMux.cpp @@ -473,14 +473,8 @@ int main(int argc, char *argv[]) "Detected Management Server fault, restarting it"; mgmt_server.restart(); } - else if (mgmt_server.request_pending()) { - mgmt_server.update_ptree(pt); - } - else if (mgmt_server.retrieve_new_ptree(pt)) { - etiLog.level(warn) << - "Detected configuration change"; - mux.update_config(pt); - } + + mgmt_server.update_ptree(pt); } } etiLog.level(info) << "Goodbye"; diff --git a/src/ManagementServer.cpp b/src/ManagementServer.cpp index 7194689..dd4da89 100644 --- a/src/ManagementServer.cpp +++ b/src/ManagementServer.cpp @@ -2,7 +2,7 @@ Copyright (C) 2009 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2014, 2015 + Copyright (C) 2016 Matthias P. Braendli, matthias.braendli@mpb.li http://www.opendigitalradio.org @@ -218,47 +218,6 @@ void ManagementServer::serverThread() m_fault = true; } -bool ManagementServer::handle_setptree( - zmq::message_t& zmq_message, std::stringstream& answer) -{ - try { - if (zmq_message.more()) { - zmq::message_t zmq_new_ptree; - m_zmq_sock.recv(&zmq_new_ptree); - std::string new_ptree( - (char*)zmq_new_ptree.data(), zmq_new_ptree.size() - ); - - etiLog.level(info) << "Received ptree " << new_ptree; - -#if (BOOST_VERSION / 100000 == 1) && (BOOST_VERSION / 100 % 1000 >= 55) - boost::unique_lock<boost::mutex> lock(m_configmutex); - m_pt.clear(); - - std::stringstream json_stream; - json_stream << new_ptree; - boost::property_tree::json_parser::read_json(json_stream, m_pt); - - m_retrieve_pending = true; - answer << "OK"; - - return true; -#else -# warning "Boost version too old, ptree loading through ManagementServer disabled" -#endif - } - else { - etiLog.level(error) << - "MGMT: setptree command is missing data."; - } - } - catch (std::exception& e) { - etiLog.level(error) << - "MGMT: setptree error." << e.what(); - } - return false; -} - void ManagementServer::handle_message(zmq::message_t& zmq_message) { std::stringstream answer; @@ -288,16 +247,8 @@ void ManagementServer::handle_message(zmq::message_t& zmq_message) else if (data == "state") { answer << getStateJSON(); } - else if (data == "setptree") { - handle_setptree(zmq_message, answer); - } else if (data == "getptree") { boost::unique_lock<boost::mutex> lock(m_configmutex); - m_pending = true; - - while (m_pending && !m_retrieve_pending) { - m_condition.wait(lock); - } boost::property_tree::json_parser::write_json(answer, m_pt); } else { @@ -315,30 +266,11 @@ void ManagementServer::handle_message(zmq::message_t& zmq_message) } } -bool ManagementServer::retrieve_new_ptree(boost::property_tree::ptree& pt) -{ - boost::unique_lock<boost::mutex> lock(m_configmutex); - - if (m_retrieve_pending) - { - pt = m_pt; - - m_retrieve_pending = false; - m_condition.notify_one(); - return true; - } - - return false; -} - void ManagementServer::update_ptree(const boost::property_tree::ptree& pt) { if (m_running) { boost::unique_lock<boost::mutex> lock(m_configmutex); m_pt = pt; - m_pending = false; - - m_condition.notify_one(); } } diff --git a/src/ManagementServer.h b/src/ManagementServer.h index 836dee4..2b9b7b4 100644 --- a/src/ManagementServer.h +++ b/src/ManagementServer.h @@ -2,7 +2,7 @@ Copyright (C) 2009 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2014, 2015 + Copyright (C) 2016 Matthias P. Braendli, matthias.braendli@mpb.li http://www.opendigitalradio.org @@ -318,14 +318,12 @@ class ManagementServer m_zmq_context(), m_zmq_sock(m_zmq_context, ZMQ_REP), m_running(false), - m_fault(false), - m_pending(false) { } + m_fault(false) { } ~ManagementServer() { m_running = false; m_fault = false; - m_pending = false; // TODO notify m_thread.join(); @@ -343,9 +341,6 @@ class ManagementServer void registerInput(InputStat* is); void unregisterInput(std::string id); - /* Ask if there is a configuration request pending */ - bool request_pending() { return m_pending; } - /* Load a ptree given by the management server. * * Returns true if the ptree was updated @@ -372,7 +367,6 @@ class ManagementServer void serverThread(void); void handle_message(zmq::message_t& zmq_message); - bool handle_setptree(zmq::message_t& zmq_message, std::stringstream& answer); bool isInputRegistered(std::string& id); @@ -410,11 +404,7 @@ class ManagementServer mutable boost::mutex m_statsmutex; /******** Configuration Data *******/ - bool m_pending; - bool m_retrieve_pending; - boost::condition_variable m_condition; mutable boost::mutex m_configmutex; - boost::property_tree::ptree m_pt; }; |