1 #ifndef artdaq_ExternalComms_CommanderInterface_hh
2 #define artdaq_ExternalComms_CommanderInterface_hh
4 #include "artdaq/Application/Commandable.hh"
5 #include "artdaq/DAQdata/Globals.hh"
6 #include "cetlib/compiler_macros.h"
7 #include "fhiclcpp/ParameterSet.h"
22 fhicl::Atom<int>
id{fhicl::Name{
"id"}, fhicl::Comment{
"The unique ID associated with this Commander plugin. (ex. XMLRPC Port number)"}, 0};
24 fhicl::Atom<std::string>
commanderPluginType{fhicl::Name{
"commanderPluginType"}, fhicl::Comment{
"String identifying the name of the CommanderInterface plugin to load"}};
36 ,
_id(ps.get<int>(
"id", 0))
92 virtual std::string
send_init(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp);
101 virtual std::string
send_soft_init(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp);
110 virtual std::string
send_reinit(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp);
119 virtual std::string
send_start(art::RunID runNumber, uint64_t timeout, uint64_t timestamp);
128 virtual std::string
send_pause(uint64_t timeout, uint64_t timestamp);
137 virtual std::string
send_resume(uint64_t timeout, uint64_t timestamp);
146 virtual std::string
send_stop(uint64_t timeout, uint64_t timestamp);
171 virtual std::string
send_report(std::string which);
217 virtual std::string
send_trace_set(std::string name, std::string type, std::string mask);
225 virtual std::string
send_meta_command(std::string command, std::string argument);
278 #ifndef EXTERN_C_FUNC_DECLARE_START
279 #define EXTERN_C_FUNC_DECLARE_START extern "C" {
282 #define DEFINE_ARTDAQ_COMMANDER(klass) \
283 EXTERN_C_FUNC_DECLARE_START \
284 std::unique_ptr<artdaq::CommanderInterface> make(fhicl::ParameterSet const& ps, \
285 artdaq::Commandable& commandable) \
287 return std::unique_ptr<artdaq::CommanderInterface>(new klass(ps, commandable)); \
virtual std::string send_shutdown(uint64_t timeout)
Using the transport mechanism, send a shutdown command
This interface defines the functions used to transfer data between artdaq applications.
Commandable is the base class for all artdaq components which implement the artdaq state machine...
fhicl::WrappedTable< Config > Parameters
Used for ParameterSet validation (if desired)
virtual std::string send_resume(uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a resume command
virtual std::string clear_config_archive()
Using the transport mechanism, send a clear_config_archive command
fhicl::Atom< std::string > commanderPluginType
"commanderPluginType" (REQUIRED): The type of Commander plugin to load
virtual std::string send_meta_command(std::string command, std::string argument)
Using the transport mechanism, send an send_meta_command command
int _id
ID Number of this Commander.
virtual std::string send_stop(uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a stop command
virtual std::string send_legal_commands()
Using the transport mechanism, send a legal_commands command
virtual std::string send_init(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send an init command
virtual std::string send_register_monitor(std::string monitor_fhicl)
Using the transport mechanism, send a register_monitor command
virtual ~CommanderInterface()
Default virtual Destructor.
virtual std::string send_soft_init(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a soft_init command
artdaq::Commandable & _commandable
Reference to the Commandable that this Commander Commands.
virtual std::string send_rollover_subrun(uint64_t seq, uint32_t subrunNumber)
Using the transport mechanism, send a send_rollover_subrun command
CommanderInterface(const fhicl::ParameterSet &ps, artdaq::Commandable &commandable)
CommanderInterface Constructor.
CommanderInterface & operator=(const CommanderInterface &)=delete
Copy Assignment operator is deleted.
virtual std::string add_config_archive_entry(std::string key, std::string value)
Using the transport mechanism, send an add_config_archive_entry command
virtual std::string send_reinit(fhicl::ParameterSet ps, uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a reinit command
Configuration of the CommanderInterface. May be used for parameter validation
virtual std::string send_report(std::string which)
Using the transport mechanism, send a report command
virtual void run_server()=0
run_server is the main work loop for the Commander.
virtual std::string send_status()
Using the transport mechanism, send a status command
bool GetStatus()
Determine whether the Commander plugin is ready to accept commands
virtual std::string send_pause(uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a pause command
virtual std::string send_trace_get(std::string name)
Using the transport mechanism, send an send_trace_get command
virtual std::string send_start(art::RunID runNumber, uint64_t timeout, uint64_t timestamp)
Using the transport mechanism, send a start command
std::atomic< bool > running_
Whether the server is running and able to respond to requests.
virtual std::string send_trace_set(std::string name, std::string type, std::string mask)
Using the transport mechanism, send an send_trace_msgfacility_set command
virtual std::string send_unregister_monitor(std::string label)
Using the transport mechanism, send an unregister_monitor command