Cleaned up Service::StateFromString function.

This commit is contained in:
Gunnar Beutner 2012-09-07 09:47:58 +02:00
parent df6de810cd
commit 91831b3260

View File

@ -391,24 +391,16 @@ void Service::ApplyCheckResult(const Dictionary::Ptr& cr)
ServiceState Service::StateFromString(const String& state) ServiceState Service::StateFromString(const String& state)
{ {
/* TODO: make this thread-safe */ if (state == "ok")
static map<String, ServiceState> stateLookup; return StateOK;
else if (state == "warning")
if (stateLookup.empty()) { return StateWarning;
stateLookup["ok"] = StateOK; else if (state == "critical")
stateLookup["warning"] = StateWarning; return StateCritical;
stateLookup["critical"] = StateCritical; else if (state == "uncheckable")
stateLookup["uncheckable"] = StateUncheckable; return StateUncheckable;
stateLookup["unknown"] = StateUnknown;
}
map<String, ServiceState>::iterator it;
it = stateLookup.find(state);
if (it == stateLookup.end())
return StateUnknown;
else else
return it->second; return StateUnknown;
} }
String Service::StateToString(ServiceState state) String Service::StateToString(ServiceState state)