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