artdaq  v3_01_00
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 
27  TaskType StringToTaskType(std::string task)
28  {
29  if (task.size() < 1) return TaskType::UnknownTask;
30  if (task[0] == 'b' || task[0] == 'B') return TaskType::BoardReaderTask;
31  if (task[0] == 'e' || task[0] == 'E') return TaskType::EventBuilderTask;
32  if (task[0] == 'r' || task[0] == 'R') return TaskType::RoutingMasterTask;
33  if (task[0] == 'd' || task[0] == 'D') {
34  if (task.size() < 2) return TaskType::UnknownTask;
35  if (task[1] == 'a' || task[1] == 'A') return TaskType::DataLoggerTask;
36  if (task[1] == 'i' || task[1] == 'I') return TaskType::DispatcherTask;
37  }
38 
39  return TaskType::UnknownTask;
40  }
41 
42  TaskType IntToTaskType(int task)
43  {
44  if (task > 0 && task <= 5)
45  return static_cast<TaskType>(task);
46 
47  return TaskType::UnknownTask;
48  }
49 
50  std::string TaskTypeToString(TaskType task)
51  {
52  switch (task)
53  {
54  case(BoardReaderTask):
55  return "BoardReader";
56  case(EventBuilderTask):
57  return "EventBuilder";
58  case(DataLoggerTask):
59  return "DataLogger";
60  case(DispatcherTask):
61  return "Dispatcher";
62  case(RoutingMasterTask):
63  return "RoutingMaster";
64  default:
65  break;
66  }
67  return "Unknown";
68  }
69  }
70 
71  using detail::TaskType; // Require C++2011 scoping, hide C++03 scoping.
72 }
73 
74 #endif /* artdaq_Application_TaskType_hh */
TaskType
The types of applications in artdaq.
Definition: TaskType.hh:17