X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=EventTypes%2FRtcomEvent.cpp;fp=EventTypes%2FRtcomEvent.cpp;h=b5958582ef04921094b6a6755c22d70de1c6ad31;hb=6f10c189c55e152e9e81f92ff04a082be3a0d167;hp=cb0942f7897a7b56c779f28cbedc95fe8a739eb0;hpb=7e009a8d18177f4f482cc088ab19dc34819d9149;p=qwerkisync
diff --git a/EventTypes/RtcomEvent.cpp b/EventTypes/RtcomEvent.cpp
index cb0942f..b595858 100644
--- a/EventTypes/RtcomEvent.cpp
+++ b/EventTypes/RtcomEvent.cpp
@@ -16,9 +16,17 @@
* .
*/
+#include "RtcomEvent.h"
+
+#include
+
+#include
+#include
+
#include
+#include
-#include "RtcomEvent.h"
+#include
using namespace EventTypes;
@@ -30,3 +38,33 @@ void RtcomEvent::freeRTComContents(RTComElEvent &event)
{
rtcom_el_event_free_contents(&event);
}
+
+const unsigned int RtcomEvent::GetFlagValue(const QString &value) const
+{
+ static QHash 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);
+}
+