00001 #include "artdaq-ots/Overlays/FragmentType.hh" 00002 00003 #include <algorithm> 00004 #include <cassert> 00005 #include <string> 00006 #include <vector> 00007 00008 namespace { 00009 static std::vector<std::string> const 00010 names { "MISSED", "UDP","UNKNOWN" }; 00011 } 00012 00013 ots::FragmentType 00014 ots::toFragmentType(std::string t_string) 00015 { 00016 std::transform(t_string.begin(), 00017 t_string.end(), 00018 t_string.begin(), 00019 toupper); 00020 auto it = std::find(names.begin(), names.end(), t_string); 00021 return (it == names.end()) ? 00022 FragmentType::INVALID : 00023 static_cast<FragmentType>(artdaq::Fragment::FirstUserFragmentType + 00024 (it - names.begin())); 00025 } 00026 00027 std::string 00028 ots::fragmentTypeToString(FragmentType val) 00029 { 00030 if (val < FragmentType::INVALID) { 00031 return names[val - FragmentType::MISSED]; 00032 } 00033 else { 00034 return "INVALID/UNKNOWN"; 00035 } 00036 }