00001 #include "Conventions/Reactor.h" 00002 #include <cctype> 00003 #include <string> 00004 #include <algorithm> 00005 00006 using namespace std; 00007 00008 const char* Reactor::AsString(Reactor::Reactor_t core) 00009 { 00012 00013 switch(core) { 00014 case kUnknown: return "Unknown"; 00015 case kDayaBayA: return "DayaBayA"; 00016 case kDayaBayB: return "DayaBayB"; 00017 case kLingAoIA: return "LingAoIA"; 00018 case kLingAoIB: return "LingAoIB"; 00019 case kLingAoIIA:return "LingAoIIA"; 00020 case kLingAoIIB:return "LingAoIIB"; 00021 default: return "?Unknown?"; 00022 }; 00023 } 00024 00025 Reactor::Reactor_t Reactor::FromString(const char* str) 00026 { 00027 string s = str; 00028 std::transform(s.begin(),s.end(),s.begin(),::tolower); 00029 00030 using namespace Reactor; 00031 00032 if (s.find("dayabaya") != string::npos) return kDayaBayA; 00033 if (s.find("dayabayb") != string::npos) return kDayaBayB; 00034 if (s.find("lingaoia") != string::npos) return kLingAoIA; 00035 if (s.find("lingaoib") != string::npos) return kLingAoIB; 00036 if (s.find("lingaoiia") != string::npos) return kLingAoIIA; 00037 if (s.find("lingaoiib") != string::npos) return kLingAoIIB; 00038 return kUnknown; 00039 }