#include #include #include #include #include namespace scwx { namespace awips { static const std::string logPrefix_ = "[scwx::awips::significance] "; typedef boost::bimap, boost::bimaps::unordered_set_of> SignificanceCodesBimap; static const SignificanceCodesBimap significanceCodes_ = boost::assign::list_of // (Significance::Warning, "W") // (Significance::Watch, "A") // (Significance::Advisory, "Y") // (Significance::Statement, "S") // (Significance::Forecast, "F") // (Significance::Outlook, "O") // (Significance::Synopsis, "N") // (Significance::Unknown, "?"); static const std::unordered_map significanceText_ { {Significance::Warning, "Warning"}, // {Significance::Watch, "Watch"}, // {Significance::Advisory, "Advisory"}, // {Significance::Statement, "Statement"}, // {Significance::Forecast, "Forecast"}, // {Significance::Outlook, "Outlook"}, // {Significance::Synopsis, "Synopsis"}, // {Significance::Unknown, "Unknown"}}; Significance GetSignificance(const std::string& code) { Significance significance; if (significanceCodes_.right.find(code) != significanceCodes_.right.end()) { significance = significanceCodes_.right.at(code); } else { significance = Significance::Unknown; BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "Unrecognized code: \"" << code << "\""; } return significance; } const std::string& GetSignificanceCode(Significance significance) { return significanceCodes_.left.at(significance); } const std::string& GetSignificanceText(Significance significance) { return significanceText_.at(significance); } } // namespace awips } // namespace scwx