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
|