00001 /* DarkSide 50 DAQ program 00002 * This file add the xmlrpc commander as a client to the SC 00003 * Author: Alessandro Razeto <Alessandro.Razeto@ge.infn.it> 00004 */ 00005 #ifndef artdaq_ExternalComms_xmlrpc_commander_hh 00006 #define artdaq_ExternalComms_xmlrpc_commander_hh 00007 00008 #include <mutex> 00009 #include "artdaq/ExternalComms/CommanderInterface.hh" 00010 00011 namespace artdaq 00012 { 00013 00017 class xmlrpc_commander : public CommanderInterface 00018 { 00019 public: 00031 xmlrpc_commander(fhicl::ParameterSet ps, artdaq::Commandable& commandable); 00032 00036 void run_server() override; 00037 00043 std::string send_register_monitor(std::string monitor_fhicl) override; 00044 00050 std::string send_unregister_monitor(std::string monitor_label) override; 00051 00052 private: 00053 xmlrpc_commander(const xmlrpc_commander&) = delete; 00054 00055 xmlrpc_commander(xmlrpc_commander&&) = delete; 00056 00057 int port_; 00058 std::string serverUrl_; 00059 00060 public: 00061 std::mutex mutex_; 00062 std::unique_ptr<xmlrpc_c::serverAbyss> server; 00063 }; 00064 00065 } 00066 00067 #endif /* artdaq_ExternalComms_xmlrpc_commander_hh */