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

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

#include "editor/editable_data_source.hpp"

#include "indexer/feature_decl.hpp"

#include <memory>

namespace search
{
FeatureLoader::FeatureLoader(DataSource const & dataSource) : m_dataSource(dataSource) {}

bool FeatureLoader::Load(FeatureID const & id, FeatureType & ft)
{
  ASSERT(m_checker.CalledOnOriginalThread(), ());

  auto const & mwmId = id.m_mwmId;
  if (!m_guard || m_guard->GetId() != mwmId)
    m_guard = std::make_unique<FeaturesLoaderGuard>(m_dataSource, mwmId);
  return m_guard->GetFeatureByIndex(id.m_index, ft);
}

void FeatureLoader::Reset()
{
  ASSERT(m_checker.CalledOnOriginalThread(), ());
  m_guard.reset();
}
}  // namespace search