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

ugc_translator.cpp « generator - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 150a2af03070b786a9994ab63e63f7d84ef79ae1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "generator/ugc_translator.hpp"

#include "generator/ugc_db.hpp"

#include "ugc/serdes_json.hpp"

#include "coding/multilang_utf8_string.hpp"

#include "base/string_utils.hpp"

#include "3party/jansson/myjansson.hpp"

namespace generator
{
UGCTranslator::UGCTranslator() : m_db(":memory:") {}

UGCTranslator::UGCTranslator(std::string const & dbFilename) : m_db(dbFilename) {}

bool UGCTranslator::TranslateUGC(osm::Id const & id, ugc::UGC & ugc)
{
  std::vector<uint8_t> blob;

  if (!m_db.Get(id, blob))
    return false;

  std::string src(blob.cbegin(), blob.cend());

  ugc::DeserializerJsonV0 des(src);

  des(ugc);

  return true;
}

void UGCTranslator::CreateDb(std::string const & data)
{
  CHECK(m_db.Exec(data), ());
}
}  // namespace generator