$treeview $search $mathjax $extrastylesheet
artdaq
v3_04_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef artdaq_Application_TaskType_hh 00002 #define artdaq_Application_TaskType_hh 00003 00004 #include "artdaq/DAQdata/Globals.hh" 00005 00009 namespace artdaq 00010 { 00014 namespace detail 00015 { 00019 enum TaskType : int 00020 { 00021 BoardReaderTask = 1, 00022 EventBuilderTask = 2, 00023 DataLoggerTask = 3, 00024 DispatcherTask = 4, 00025 RoutingMasterTask = 5, 00026 UnknownTask 00027 }; 00028 00034 TaskType StringToTaskType(std::string const& task) 00035 { 00036 if (task.size() < 1) return TaskType::UnknownTask; 00037 if (task[0] == 'b' || task[0] == 'B') return TaskType::BoardReaderTask; 00038 if (task[0] == 'e' || task[0] == 'E') return TaskType::EventBuilderTask; 00039 if (task[0] == 'r' || task[0] == 'R') return TaskType::RoutingMasterTask; 00040 if (task[0] == 'd' || task[0] == 'D') { 00041 if (task.size() < 2) return TaskType::UnknownTask; 00042 if (task[1] == 'a' || task[1] == 'A') return TaskType::DataLoggerTask; 00043 if (task[1] == 'i' || task[1] == 'I') return TaskType::DispatcherTask; 00044 } 00045 00046 return TaskType::UnknownTask; 00047 } 00048 00054 TaskType IntToTaskType(int const& task) 00055 { 00056 if (task > 0 && task <= 5) 00057 return static_cast<TaskType>(task); 00058 00059 return TaskType::UnknownTask; 00060 } 00061 00067 std::string TaskTypeToString(TaskType const& task) 00068 { 00069 switch (task) 00070 { 00071 case(BoardReaderTask): 00072 return "BoardReader"; 00073 case(EventBuilderTask): 00074 return "EventBuilder"; 00075 case(DataLoggerTask): 00076 return "DataLogger"; 00077 case(DispatcherTask): 00078 return "Dispatcher"; 00079 case(RoutingMasterTask): 00080 return "RoutingMaster"; 00081 default: 00082 break; 00083 } 00084 return "Unknown"; 00085 } 00086 00087 00088 inline TraceStreamer& operator<<(TraceStreamer& x, TaskType r) 00089 { 00090 return x << TaskTypeToString(r); 00091 } 00092 } 00093 00094 using detail::TaskType; // Require C++2011 scoping, hide C++03 scoping. 00095 } 00096 00097 #endif /* artdaq_Application_TaskType_hh */