artdaq  v3_02_01
TaskType.hh
1 #ifndef artdaq_Application_TaskType_hh
2 #define artdaq_Application_TaskType_hh
3 
7 namespace artdaq
8 {
12  namespace detail
13  {
17  enum TaskType : int
18  {
19  BoardReaderTask = 1,
20  EventBuilderTask = 2,
21  DataLoggerTask = 3,
22  DispatcherTask = 4,
23  RoutingMasterTask = 5,
24  UnknownTask
25  };
26 
32  TaskType StringToTaskType(std::string task)
33  {
34  if (task.size() < 1) return TaskType::UnknownTask;
35  if (task[0] == 'b' || task[0] == 'B') return TaskType::BoardReaderTask;
36  if (task[0] == 'e' || task[0] == 'E') return TaskType::EventBuilderTask;
37  if (task[0] == 'r' || task[0] == 'R') return TaskType::RoutingMasterTask;
38  if (task[0] == 'd' || task[0] == 'D') {
39  if (task.size() < 2) return TaskType::UnknownTask;
40  if (task[1] == 'a' || task[1] == 'A') return TaskType::DataLoggerTask;
41  if (task[1] == 'i' || task[1] == 'I') return TaskType::DispatcherTask;
42  }
43 
44  return TaskType::UnknownTask;
45  }
46 
53  {
54  if (task > 0 && task <= 5)
55  return static_cast<TaskType>(task);
56 
57  return TaskType::UnknownTask;
58  }
59 
65  std::string TaskTypeToString(TaskType task)
66  {
67  switch (task)
68  {
69  case(BoardReaderTask):
70  return "BoardReader";
71  case(EventBuilderTask):
72  return "EventBuilder";
73  case(DataLoggerTask):
74  return "DataLogger";
75  case(DispatcherTask):
76  return "Dispatcher";
77  case(RoutingMasterTask):
78  return "RoutingMaster";
79  default:
80  break;
81  }
82  return "Unknown";
83  }
84  }
85 
86  using detail::TaskType; // Require C++2011 scoping, hide C++03 scoping.
87 }
88 
89 #endif /* artdaq_Application_TaskType_hh */
TaskType StringToTaskType(std::string task)
Convert a string to a TaskType (Used by artdaq.cc)
Definition: TaskType.hh:32
TaskType IntToTaskType(int task)
Convert an integer to the corresponding TaskType
Definition: TaskType.hh:52
std::string TaskTypeToString(TaskType task)
Convert a TaskType to string representation
Definition: TaskType.hh:65
TaskType
The types of applications in artdaq.
Definition: TaskType.hh:17