Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ugc/loader.cpp')
-rw-r--r--ugc/loader.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/ugc/loader.cpp b/ugc/loader.cpp
new file mode 100644
index 0000000000..b28d9e3461
--- /dev/null
+++ b/ugc/loader.cpp
@@ -0,0 +1,34 @@
+#include "ugc/loader.hpp"
+
+#include "ugc/types.hpp"
+
+#include "indexer/feature.hpp"
+#include "indexer/index.hpp"
+
+#include "defines.hpp"
+
+namespace ugc
+{
+Loader::Loader(Index const & index) : m_index(index) {}
+
+void Loader::GetUGC(FeatureID const & featureId, UGC & result)
+{
+ UGC ugc;
+ auto const & handle = m_index.GetMwmHandleById(featureId.m_mwmId);
+
+ if (!handle.IsAlive())
+ return;
+
+ auto const & value = *handle.GetValue<MwmValue>();
+
+ if (!value.m_cont.IsExist(UGC_FILE_TAG))
+ return;
+
+ auto readerPtr = value.m_cont.GetReader(UGC_FILE_TAG);
+
+ if (!m_d.Deserialize(*readerPtr.GetPtr(), featureId.m_index, ugc))
+ return;
+
+ result = std::move(ugc);
+}
+} // namespace ugc