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

rank_table_cache.cpp « v2 « search - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cfaf1ee62ec43cd004cd38f245163f71762da113 (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
#include "search/v2/rank_table_cache.hpp"

#include "search/dummy_rank_table.hpp"

#include "indexer/rank_table.hpp"

namespace search
{
namespace v2
{

RankTable const & RankTableCache::Get(Index & index, TId const & mwmId)
{
  auto const it = m_ranks.find(TKey(mwmId));
  if (it != m_ranks.end())
    return *it->second;

  TKey handle(index.GetMwmHandleById(mwmId));
  auto table = RankTable::Load(handle.GetValue<MwmValue>()->m_cont);
  if (!table)
    table.reset(new DummyRankTable());

  return *(m_ranks.emplace(move(handle), move(table)).first->second.get());
}

void RankTableCache::Remove(TId const & id)
{
  m_ranks.erase(TKey(id));
}

void RankTableCache::Clear()
{
  m_ranks.clear();
}

}  // namespace v2
}  // namespace search