otsdaq  v2_04_01
FragmentType.cc
1 #include "artdaq-ots/Overlays/FragmentType.hh"
2 
3 #include <algorithm>
4 #include <cassert>
5 #include <string>
6 #include <vector>
7 
8 namespace
9 {
10 static std::vector<std::string> const names{"MISSED", "UDP", "UNKNOWN"};
11 }
12 
13 ots::FragmentType ots::toFragmentType(std::string t_string)
14 {
15  std::transform(t_string.begin(), t_string.end(), t_string.begin(), toupper);
16  auto it = std::find(names.begin(), names.end(), t_string);
17  return (it == names.end())
18  ? FragmentType::INVALID
19  : static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType +
20  (it - names.begin()));
21 }
22 
23 std::string ots::fragmentTypeToString(FragmentType val)
24 {
25  if(val < FragmentType::INVALID)
26  {
27  return names[val - FragmentType::MISSED];
28  }
29  else
30  {
31  return "INVALID/UNKNOWN";
32  }
33 }