+
+const unsigned int RtcomEvent::GetFlagValue(const QString &value) const
+{
+ static QHash<QString, uint> valueLookups;
+
+ if(!valueLookups.contains(value))
+ {
+ RTComEl *el(rtcom_el_new());
+ if(NULL != el)
+ {
+ gint flagValue;
+ if(-1 != (flagValue = rtcom_el_get_flag_value(el, value.toUtf8())))
+ valueLookups.insert(value, flagValue);
+
+ g_object_unref(el);
+
+ if(-1 == flagValue)
+ {
+ throw std::runtime_error(
+ QString("Unable to find flag value '%1'' in rtcom database")
+ .arg(value).toStdString());
+ }
+ }
+ else
+ qDebug() << "Failed to create event logger.";
+ }
+
+ return valueLookups.value(value);
+}
+