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: 9841aa4b26ddfbdb77ffe1a6a815d3656b86460d (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
#include "search/feature_loader.hpp"

#include "indexer/feature_decl.hpp"

#include "base/stl_add.hpp"

namespace search
{
FeatureLoader::FeatureLoader(DataSourceBase 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 = my::make_unique<EditableDataSource::FeaturesLoaderGuard>(m_dataSource, mwmId);
  return m_guard->GetFeatureByIndex(id.m_index, ft);
}

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