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
|