artdaq  v3_09_00
artdaq.cc
1 #include "artdaq/Application/LoadParameterSet.hh"
2 #include "proto/artdaqapp.hh"
3 
4 int main(int argc, char* argv[])
5 try
6 {
7  struct Config
8  {
9  fhicl::TableFragment<artdaq::artdaqapp::Config> artdaqapp_config;
10  fhicl::Atom<std::string> app_type{fhicl::Name{"app_type"}, fhicl::Comment{"Type of the artdaq application to run"}, ""};
11  };
12 
13  fhicl::ParameterSet config_ps = LoadParameterSet<Config>(argc, argv, "artdaq", "This meta-application may be configured to run any of the core artdaq processes through the \"app_type\" configuration parameter.");
14  artdaq::detail::TaskType task = artdaq::detail::UnknownTask;
15 
16  if (config_ps.has_key("app_type"))
17  {
18  task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("app_type", ""));
19  if (task == artdaq::detail::TaskType::UnknownTask)
20  {
21  task = artdaq::detail::IntToTaskType(config_ps.get<int>("app_type"));
22  }
23  }
24  else if (config_ps.has_key("application_type"))
25  {
26  task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("application_type", ""));
27  if (task == artdaq::detail::TaskType::UnknownTask)
28  {
29  task = artdaq::detail::IntToTaskType(config_ps.get<int>("application_type"));
30  }
31  }
32  artdaq::artdaqapp::runArtdaqApp(task, config_ps);
33 
34  return 0;
35 }
36 catch (...)
37 {
38  return -1;
39 }
TaskType StringToTaskType(std::string const &task)
Convert a string to a TaskType (Used by artdaq.cc)
Definition: TaskType.hh:32
TaskType IntToTaskType(int const &task)
Convert an integer to the corresponding TaskType
Definition: TaskType.hh:53
Configuration for simple_metric_sender.
static void runArtdaqApp(detail::TaskType task, fhicl::ParameterSet const &config_ps)
Run an artdaq Application
Definition: artdaqapp.hh:54
TaskType
The types of applications in artdaq.
Definition: TaskType.hh:17