otsdaq  v2_01_00
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  static std::vector<std::string> const
10  names { "MISSED", "UDP","UNKNOWN" };
11 }
12 
13 ots::FragmentType
14 ots::toFragmentType(std::string t_string)
15 {
16  std::transform(t_string.begin(),
17  t_string.end(),
18  t_string.begin(),
19  toupper);
20  auto it = std::find(names.begin(), names.end(), t_string);
21  return (it == names.end()) ?
22  FragmentType::INVALID :
23  static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType +
24  (it - names.begin()));
25 }
26 
27 std::string
28 ots::fragmentTypeToString(FragmentType val)
29 {
30  if (val < FragmentType::INVALID) {
31  return names[val - FragmentType::MISSED];
32  }
33  else {
34  return "INVALID/UNKNOWN";
35  }
36 }