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); +} +