forked from organicmaps/organicmaps
Merge pull request #2 from igrechuhin/refactor-search-api-ios
[ios] Refactored for new search API.
This commit is contained in:
commit
67d7e94784
2 changed files with 113 additions and 81 deletions
|
@ -5,24 +5,26 @@
|
|||
|
||||
#include "Framework.h"
|
||||
|
||||
#include "search/everywhere_search_params.hpp"
|
||||
#include "search/query_saver.hpp"
|
||||
#include "search/search_params.hpp"
|
||||
#include "search/viewport_search_params.hpp"
|
||||
|
||||
namespace
|
||||
{
|
||||
using TObserver = id<MWMSearchObserver>;
|
||||
using TObservers = NSHashTable<__kindof TObserver>;
|
||||
|
||||
NSTimeInterval constexpr kOnSearchCompletedDelay = 0.2;
|
||||
} // namespace
|
||||
|
||||
@interface MWMSearch ()
|
||||
|
||||
@property(nonatomic) NSUInteger suggestionsCount;
|
||||
@property(nonatomic) NSUInteger resultsCount;
|
||||
@property(nonatomic) BOOL searchOnMap;
|
||||
|
||||
@property(nonatomic) BOOL textChanged;
|
||||
@property(nonatomic) BOOL isSearching;
|
||||
@property(nonatomic) BOOL isPendingUpdate;
|
||||
@property(nonatomic) BOOL everywhereSearchActive;
|
||||
@property(nonatomic) BOOL viewportSearchActive;
|
||||
|
||||
@property(nonatomic) TObservers * observers;
|
||||
|
||||
|
@ -30,7 +32,8 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
|
||||
@implementation MWMSearch
|
||||
{
|
||||
search::SearchParams m_params;
|
||||
search::EverywhereSearchParams m_everywhereParams;
|
||||
search::ViewportSearchParams m_viewportParams;
|
||||
search::Results m_results;
|
||||
}
|
||||
|
||||
|
@ -50,56 +53,83 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
{
|
||||
self = [super init];
|
||||
if (self)
|
||||
{
|
||||
_observers = [TObservers weakObjectsHashTable];
|
||||
__weak auto weakSelf = self;
|
||||
m_params.m_onStarted = [weakSelf] {
|
||||
__strong auto self = weakSelf;
|
||||
if (!self)
|
||||
return;
|
||||
runAsyncOnMainQueue(^{
|
||||
[self onSearchStarted];
|
||||
});
|
||||
};
|
||||
m_params.m_onResults = [weakSelf](search::Results const & results) {
|
||||
__strong auto self = weakSelf;
|
||||
if (!self)
|
||||
return;
|
||||
runAsyncOnMainQueue([self, results] {
|
||||
if (results.IsEndMarker())
|
||||
{
|
||||
[self onSearchCompleted];
|
||||
}
|
||||
else
|
||||
{
|
||||
self->m_results = results;
|
||||
self.suggestionsCount = results.GetSuggestsCount();
|
||||
self.resultsCount = results.GetCount();
|
||||
[self onSearchResultsUpdated];
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)updateCallbacks
|
||||
{
|
||||
__weak auto weakSelf = self;
|
||||
m_everywhereParams.m_onResults = [weakSelf](search::Results const & results) {
|
||||
__strong auto self = weakSelf;
|
||||
if (!self)
|
||||
return;
|
||||
if (results.IsEndMarker())
|
||||
{
|
||||
self.everywhereSearchActive = NO;
|
||||
[self delayedOnSearchCompleted];
|
||||
}
|
||||
else
|
||||
{
|
||||
self->m_results = results;
|
||||
self.suggestionsCount = results.GetSuggestsCount();
|
||||
[self onSearchResultsUpdated];
|
||||
}
|
||||
};
|
||||
m_viewportParams.m_onStarted = [weakSelf] {
|
||||
__strong auto self = weakSelf;
|
||||
if (!self)
|
||||
return;
|
||||
if (IPAD)
|
||||
{
|
||||
GetFramework().SearchEverywhere(self->m_everywhereParams);
|
||||
self.everywhereSearchActive = YES;
|
||||
}
|
||||
self.viewportSearchActive = YES;
|
||||
[self onSearchStarted];
|
||||
};
|
||||
m_viewportParams.m_onCompleted = [weakSelf] {
|
||||
__strong auto self = weakSelf;
|
||||
if (!self)
|
||||
return;
|
||||
self.viewportSearchActive = NO;
|
||||
[self delayedOnSearchCompleted];
|
||||
};
|
||||
}
|
||||
|
||||
- (void)update
|
||||
{
|
||||
if (self.isSearching)
|
||||
if (m_everywhereParams.m_query.empty())
|
||||
return;
|
||||
[self updateCallbacks];
|
||||
auto & f = GetFramework();
|
||||
if (IPAD)
|
||||
{
|
||||
self.isPendingUpdate = YES;
|
||||
return;
|
||||
f.SearchEverywhere(m_everywhereParams);
|
||||
f.SearchInViewport(m_viewportParams);
|
||||
|
||||
self.everywhereSearchActive = YES;
|
||||
}
|
||||
self.isPendingUpdate = NO;
|
||||
if (m_params.m_query.empty())
|
||||
return;
|
||||
CLLocation * lastLocation = [MWMLocationManager lastLocation];
|
||||
if (lastLocation)
|
||||
m_params.SetPosition(lastLocation.coordinate.latitude, lastLocation.coordinate.longitude);
|
||||
if (self.searchOnMap)
|
||||
GetFramework().StartInteractiveSearch(m_params);
|
||||
else
|
||||
GetFramework().Search(m_params);
|
||||
{
|
||||
if (self.searchOnMap)
|
||||
{
|
||||
f.SearchInViewport(m_viewportParams);
|
||||
}
|
||||
else
|
||||
{
|
||||
f.SearchEverywhere(m_everywhereParams);
|
||||
self.everywhereSearchActive = YES;
|
||||
}
|
||||
}
|
||||
[self onSearchStarted];
|
||||
}
|
||||
|
||||
- (void)delayedOnSearchCompleted
|
||||
{
|
||||
SEL const selector = @selector(onSearchCompleted);
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:selector object:nil];
|
||||
[self performSelector:selector withObject:nil afterDelay:kOnSearchCompletedDelay];
|
||||
}
|
||||
|
||||
#pragma mark - Add/Remove Observers
|
||||
|
@ -122,7 +152,7 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
return;
|
||||
CLS_LOG(@"Save search text: %@\nInputLocale: %@", query, inputLocale);
|
||||
string const locale = (!inputLocale || inputLocale.length == 0)
|
||||
? [MWMSearch manager]->m_params.m_inputLocale
|
||||
? [MWMSearch manager]->m_everywhereParams.m_inputLocale
|
||||
: inputLocale.UTF8String;
|
||||
string const text = query.precomposedStringWithCompatibilityMapping.UTF8String;
|
||||
GetFramework().SaveSearchQuery(make_pair(locale, text));
|
||||
|
@ -134,13 +164,15 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
return;
|
||||
CLS_LOG(@"Search text: %@\nInputLocale: %@", query, inputLocale);
|
||||
MWMSearch * manager = [MWMSearch manager];
|
||||
if (inputLocale && inputLocale.length != 0)
|
||||
if (inputLocale.length != 0)
|
||||
{
|
||||
string const locale = inputLocale.UTF8String;
|
||||
manager->m_params.SetInputLocale(locale);
|
||||
manager->m_everywhereParams.m_inputLocale = locale;
|
||||
manager->m_viewportParams.m_inputLocale = locale;
|
||||
}
|
||||
string const text = query.precomposedStringWithCompatibilityMapping.UTF8String;
|
||||
manager->m_params.m_query = text;
|
||||
manager->m_everywhereParams.m_query = text;
|
||||
manager->m_viewportParams.m_query = text;
|
||||
manager.textChanged = YES;
|
||||
[manager update];
|
||||
}
|
||||
|
@ -153,30 +185,29 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
|
||||
+ (void)clear
|
||||
{
|
||||
GetFramework().CancelInteractiveSearch();
|
||||
GetFramework().CancelAllSearches();
|
||||
MWMSearch * manager = [MWMSearch manager];
|
||||
manager->m_params.Clear();
|
||||
manager->m_results.Clear();
|
||||
manager.suggestionsCount = manager->m_results.GetSuggestsCount();
|
||||
manager.resultsCount = manager->m_results.GetCount();
|
||||
manager.suggestionsCount = 0;
|
||||
}
|
||||
|
||||
+ (BOOL)isSearchOnMap { return IPAD || [MWMSearch manager].searchOnMap; }
|
||||
+ (BOOL)isSearchOnMap { return [MWMSearch manager].searchOnMap; }
|
||||
+ (void)setSearchOnMap:(BOOL)searchOnMap
|
||||
{
|
||||
MWMSearch * manager = [MWMSearch manager];
|
||||
manager.searchOnMap = searchOnMap;
|
||||
[manager update];
|
||||
if (!IPAD)
|
||||
[manager update];
|
||||
}
|
||||
|
||||
+ (NSUInteger)suggestionsCount { return [MWMSearch manager].suggestionsCount; }
|
||||
+ (NSUInteger)resultsCount { return [MWMSearch manager].resultsCount; }
|
||||
|
||||
+ (NSUInteger)resultsCount { return [MWMSearch manager]->m_results.GetCount(); }
|
||||
#pragma mark - Notifications
|
||||
|
||||
- (void)onSearchStarted
|
||||
{
|
||||
self.isSearching = YES;
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(onSearchCompleted) object:nil];
|
||||
|
||||
for (TObserver observer in self.observers)
|
||||
{
|
||||
if ([observer respondsToSelector:@selector(onSearchStarted)])
|
||||
|
@ -186,17 +217,14 @@ using TObservers = NSHashTable<__kindof TObserver>;
|
|||
|
||||
- (void)onSearchCompleted
|
||||
{
|
||||
self.isSearching = NO;
|
||||
if (self.isPendingUpdate)
|
||||
[self update];
|
||||
if (self.everywhereSearchActive || self.viewportSearchActive)
|
||||
return;
|
||||
|
||||
for (TObserver observer in self.observers)
|
||||
{
|
||||
if ([observer respondsToSelector:@selector(onSearchCompleted)])
|
||||
[observer onSearchCompleted];
|
||||
}
|
||||
// TODO(igrechuhin): Remove this workaround on search interface refactoring.
|
||||
if (IPAD)
|
||||
GetFramework().ShowSearchResults(m_results);
|
||||
}
|
||||
|
||||
- (void)onSearchResultsUpdated
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
/* Begin PBXBuildFile section */
|
||||
342D83341D5233B3000D8AEA /* hotels_classifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 342D83301D5233B3000D8AEA /* hotels_classifier.cpp */; };
|
||||
342D83351D5233B3000D8AEA /* hotels_classifier.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 342D83311D5233B3000D8AEA /* hotels_classifier.hpp */; };
|
||||
342D83361D5233B3000D8AEA /* interactive_search_callback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 342D83321D5233B3000D8AEA /* interactive_search_callback.cpp */; };
|
||||
342D83371D5233B3000D8AEA /* interactive_search_callback.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 342D83331D5233B3000D8AEA /* interactive_search_callback.hpp */; };
|
||||
3441CE4F1CFC1D7000CF30D4 /* processor_factory.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3441CE4A1CFC1D7000CF30D4 /* processor_factory.hpp */; };
|
||||
3441CE501CFC1D7000CF30D4 /* processor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3441CE4B1CFC1D7000CF30D4 /* processor.cpp */; };
|
||||
3441CE511CFC1D7000CF30D4 /* processor.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3441CE4C1CFC1D7000CF30D4 /* processor.hpp */; };
|
||||
|
@ -22,6 +20,11 @@
|
|||
345C8DB21D2D15A50037E3A6 /* geocoder_context.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 345C8DAC1D2D15A50037E3A6 /* geocoder_context.hpp */; };
|
||||
345C8DB31D2D15A50037E3A6 /* streets_matcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 345C8DAD1D2D15A50037E3A6 /* streets_matcher.cpp */; };
|
||||
345C8DB41D2D15A50037E3A6 /* streets_matcher.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 345C8DAE1D2D15A50037E3A6 /* streets_matcher.hpp */; };
|
||||
3465B2821D5DE71A0021E14D /* search_params.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3465B27D1D5DE71A0021E14D /* search_params.cpp */; };
|
||||
3465B2831D5DE71A0021E14D /* search_params.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3465B27E1D5DE71A0021E14D /* search_params.hpp */; };
|
||||
3465B2841D5DE71A0021E14D /* viewport_search_callback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3465B27F1D5DE71A0021E14D /* viewport_search_callback.cpp */; };
|
||||
3465B2851D5DE71A0021E14D /* viewport_search_callback.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3465B2801D5DE71A0021E14D /* viewport_search_callback.hpp */; };
|
||||
3465B2861D5DE71A0021E14D /* viewport_search_params.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3465B2811D5DE71A0021E14D /* viewport_search_params.hpp */; };
|
||||
347F33161C4540A8009758CC /* cancel_exception.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 347F32FB1C4540A8009758CC /* cancel_exception.hpp */; };
|
||||
347F33191C4540A8009758CC /* dummy_rank_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 347F32FE1C4540A8009758CC /* dummy_rank_table.cpp */; };
|
||||
347F331A1C4540A8009758CC /* dummy_rank_table.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 347F32FF1C4540A8009758CC /* dummy_rank_table.hpp */; };
|
||||
|
@ -84,8 +87,6 @@
|
|||
675346EC1A40560D00A0A8C3 /* latlon_match.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346CE1A40560D00A0A8C3 /* latlon_match.hpp */; };
|
||||
675346ED1A40560D00A0A8C3 /* locality_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675346CF1A40560D00A0A8C3 /* locality_finder.cpp */; };
|
||||
675346EE1A40560D00A0A8C3 /* locality_finder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346D01A40560D00A0A8C3 /* locality_finder.hpp */; };
|
||||
675346EF1A40560D00A0A8C3 /* params.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675346D11A40560D00A0A8C3 /* params.cpp */; };
|
||||
675346F01A40560D00A0A8C3 /* params.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346D21A40560D00A0A8C3 /* params.hpp */; };
|
||||
675346F11A40560D00A0A8C3 /* result.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675346D31A40560D00A0A8C3 /* result.cpp */; };
|
||||
675346F21A40560D00A0A8C3 /* result.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675346D41A40560D00A0A8C3 /* result.hpp */; };
|
||||
679624961D10137D00AE4E3C /* test_results_matching.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 679624901D10137D00AE4E3C /* test_results_matching.hpp */; };
|
||||
|
@ -162,8 +163,6 @@
|
|||
/* Begin PBXFileReference section */
|
||||
342D83301D5233B3000D8AEA /* hotels_classifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hotels_classifier.cpp; sourceTree = "<group>"; };
|
||||
342D83311D5233B3000D8AEA /* hotels_classifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = hotels_classifier.hpp; sourceTree = "<group>"; };
|
||||
342D83321D5233B3000D8AEA /* interactive_search_callback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = interactive_search_callback.cpp; sourceTree = "<group>"; };
|
||||
342D83331D5233B3000D8AEA /* interactive_search_callback.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = interactive_search_callback.hpp; sourceTree = "<group>"; };
|
||||
3441CE4A1CFC1D7000CF30D4 /* processor_factory.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = processor_factory.hpp; sourceTree = "<group>"; };
|
||||
3441CE4B1CFC1D7000CF30D4 /* processor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = processor.cpp; sourceTree = "<group>"; };
|
||||
3441CE4C1CFC1D7000CF30D4 /* processor.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = processor.hpp; sourceTree = "<group>"; };
|
||||
|
@ -175,6 +174,11 @@
|
|||
345C8DAC1D2D15A50037E3A6 /* geocoder_context.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = geocoder_context.hpp; sourceTree = "<group>"; };
|
||||
345C8DAD1D2D15A50037E3A6 /* streets_matcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = streets_matcher.cpp; sourceTree = "<group>"; };
|
||||
345C8DAE1D2D15A50037E3A6 /* streets_matcher.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = streets_matcher.hpp; sourceTree = "<group>"; };
|
||||
3465B27D1D5DE71A0021E14D /* search_params.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = search_params.cpp; sourceTree = "<group>"; };
|
||||
3465B27E1D5DE71A0021E14D /* search_params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = search_params.hpp; sourceTree = "<group>"; };
|
||||
3465B27F1D5DE71A0021E14D /* viewport_search_callback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = viewport_search_callback.cpp; sourceTree = "<group>"; };
|
||||
3465B2801D5DE71A0021E14D /* viewport_search_callback.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = viewport_search_callback.hpp; sourceTree = "<group>"; };
|
||||
3465B2811D5DE71A0021E14D /* viewport_search_params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = viewport_search_params.hpp; sourceTree = "<group>"; };
|
||||
347F32FB1C4540A8009758CC /* cancel_exception.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cancel_exception.hpp; sourceTree = "<group>"; };
|
||||
347F32FE1C4540A8009758CC /* dummy_rank_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dummy_rank_table.cpp; sourceTree = "<group>"; };
|
||||
347F32FF1C4540A8009758CC /* dummy_rank_table.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = dummy_rank_table.hpp; sourceTree = "<group>"; };
|
||||
|
@ -240,8 +244,6 @@
|
|||
675346CE1A40560D00A0A8C3 /* latlon_match.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = latlon_match.hpp; sourceTree = "<group>"; };
|
||||
675346CF1A40560D00A0A8C3 /* locality_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = locality_finder.cpp; sourceTree = "<group>"; };
|
||||
675346D01A40560D00A0A8C3 /* locality_finder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = locality_finder.hpp; sourceTree = "<group>"; };
|
||||
675346D11A40560D00A0A8C3 /* params.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = params.cpp; sourceTree = "<group>"; };
|
||||
675346D21A40560D00A0A8C3 /* params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = params.hpp; sourceTree = "<group>"; };
|
||||
675346D31A40560D00A0A8C3 /* result.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = result.cpp; sourceTree = "<group>"; };
|
||||
675346D41A40560D00A0A8C3 /* result.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = result.hpp; sourceTree = "<group>"; };
|
||||
679624831D10133300AE4E3C /* libsearch_tests_support.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libsearch_tests_support.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
|
@ -401,10 +403,13 @@
|
|||
675346B21A4055CF00A0A8C3 /* search */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3465B27D1D5DE71A0021E14D /* search_params.cpp */,
|
||||
3465B27E1D5DE71A0021E14D /* search_params.hpp */,
|
||||
3465B27F1D5DE71A0021E14D /* viewport_search_callback.cpp */,
|
||||
3465B2801D5DE71A0021E14D /* viewport_search_callback.hpp */,
|
||||
3465B2811D5DE71A0021E14D /* viewport_search_params.hpp */,
|
||||
342D83301D5233B3000D8AEA /* hotels_classifier.cpp */,
|
||||
342D83311D5233B3000D8AEA /* hotels_classifier.hpp */,
|
||||
342D83321D5233B3000D8AEA /* interactive_search_callback.cpp */,
|
||||
342D83331D5233B3000D8AEA /* interactive_search_callback.hpp */,
|
||||
349B65871D4F21E5001798E2 /* lazy_centers_table.cpp */,
|
||||
349B65881D4F21E5001798E2 /* lazy_centers_table.hpp */,
|
||||
345C8DA91D2D15A50037E3A6 /* cbv.cpp */,
|
||||
|
@ -506,8 +511,6 @@
|
|||
675346CE1A40560D00A0A8C3 /* latlon_match.hpp */,
|
||||
675346CF1A40560D00A0A8C3 /* locality_finder.cpp */,
|
||||
675346D01A40560D00A0A8C3 /* locality_finder.hpp */,
|
||||
675346D11A40560D00A0A8C3 /* params.cpp */,
|
||||
675346D21A40560D00A0A8C3 /* params.hpp */,
|
||||
675346D31A40560D00A0A8C3 /* result.cpp */,
|
||||
675346D41A40560D00A0A8C3 /* result.hpp */,
|
||||
);
|
||||
|
@ -539,7 +542,6 @@
|
|||
345C8DB01D2D15A50037E3A6 /* cbv.hpp in Headers */,
|
||||
F652D90C1CFDE21900FC29A0 /* street_vicinity_loader.hpp in Headers */,
|
||||
F652D9011CFDE21900FC29A0 /* nested_rects_cache.hpp in Headers */,
|
||||
675346F01A40560D00A0A8C3 /* params.hpp in Headers */,
|
||||
670F88751CE4C032003F68BA /* types_skipper.hpp in Headers */,
|
||||
F652D8F71CFDE21900FC29A0 /* house_to_street_table.hpp in Headers */,
|
||||
347F331D1C4540A8009758CC /* locality.hpp in Headers */,
|
||||
|
@ -569,8 +571,10 @@
|
|||
342D83351D5233B3000D8AEA /* hotels_classifier.hpp in Headers */,
|
||||
3441CE4F1CFC1D7000CF30D4 /* processor_factory.hpp in Headers */,
|
||||
675346DE1A40560D00A0A8C3 /* approximate_string_match.hpp in Headers */,
|
||||
3465B2831D5DE71A0021E14D /* search_params.hpp in Headers */,
|
||||
675346EE1A40560D00A0A8C3 /* locality_finder.hpp in Headers */,
|
||||
675346EC1A40560D00A0A8C3 /* latlon_match.hpp in Headers */,
|
||||
3465B2851D5DE71A0021E14D /* viewport_search_callback.hpp in Headers */,
|
||||
A1347D521B8758C3009050FF /* query_saver.hpp in Headers */,
|
||||
675346EA1A40560D00A0A8C3 /* keyword_matcher.hpp in Headers */,
|
||||
347F33211C4540A8009758CC /* projection_on_street.hpp in Headers */,
|
||||
|
@ -583,7 +587,7 @@
|
|||
347F331B1C4540A8009758CC /* interval_set.hpp in Headers */,
|
||||
F652D9051CFDE21900FC29A0 /* rank_table_cache.hpp in Headers */,
|
||||
F652D90D1CFDE21900FC29A0 /* string_intersection.hpp in Headers */,
|
||||
342D83371D5233B3000D8AEA /* interactive_search_callback.hpp in Headers */,
|
||||
3465B2861D5DE71A0021E14D /* viewport_search_params.hpp in Headers */,
|
||||
F652D8C01CFDE1E800FC29A0 /* engine.hpp in Headers */,
|
||||
675346DF1A40560D00A0A8C3 /* feature_offset_match.hpp in Headers */,
|
||||
6796249A1D10137D00AE4E3C /* test_search_request.hpp in Headers */,
|
||||
|
@ -736,7 +740,6 @@
|
|||
675346DD1A40560D00A0A8C3 /* approximate_string_match.cpp in Sources */,
|
||||
675346E51A40560D00A0A8C3 /* intermediate_result.cpp in Sources */,
|
||||
F652D9021CFDE21900FC29A0 /* pre_ranking_info.cpp in Sources */,
|
||||
675346EF1A40560D00A0A8C3 /* params.cpp in Sources */,
|
||||
347F33261C4540A8009758CC /* reverse_geocoder.cpp in Sources */,
|
||||
A1347D511B8758C3009050FF /* query_saver.cpp in Sources */,
|
||||
675346E01A40560D00A0A8C3 /* geometry_utils.cpp in Sources */,
|
||||
|
@ -746,13 +749,13 @@
|
|||
347F33191C4540A8009758CC /* dummy_rank_table.cpp in Sources */,
|
||||
F652D8F41CFDE21900FC29A0 /* house_numbers_matcher.cpp in Sources */,
|
||||
F652D8F61CFDE21900FC29A0 /* house_to_street_table.cpp in Sources */,
|
||||
3465B2841D5DE71A0021E14D /* viewport_search_callback.cpp in Sources */,
|
||||
F652D8FC1CFDE21900FC29A0 /* model.cpp in Sources */,
|
||||
342D83341D5233B3000D8AEA /* hotels_classifier.cpp in Sources */,
|
||||
675346F11A40560D00A0A8C3 /* result.cpp in Sources */,
|
||||
F652D8C11CFDE1E800FC29A0 /* features_filter.cpp in Sources */,
|
||||
F652D8F81CFDE21900FC29A0 /* intersection_result.cpp in Sources */,
|
||||
347F33221C4540A8009758CC /* region.cpp in Sources */,
|
||||
342D83361D5233B3000D8AEA /* interactive_search_callback.cpp in Sources */,
|
||||
F652D9061CFDE21900FC29A0 /* ranking_info.cpp in Sources */,
|
||||
F652D9001CFDE21900FC29A0 /* nested_rects_cache.cpp in Sources */,
|
||||
3441CE501CFC1D7000CF30D4 /* processor.cpp in Sources */,
|
||||
|
@ -762,6 +765,7 @@
|
|||
345C8DAF1D2D15A50037E3A6 /* cbv.cpp in Sources */,
|
||||
F659FC6D1CF4A30B000A06B1 /* pre_ranker.cpp in Sources */,
|
||||
F652D9081CFDE21900FC29A0 /* ranking_utils.cpp in Sources */,
|
||||
3465B2821D5DE71A0021E14D /* search_params.cpp in Sources */,
|
||||
347F33241C4540A8009758CC /* retrieval.cpp in Sources */,
|
||||
A1347D551B8758E9009050FF /* query_saver_tests.cpp in Sources */,
|
||||
F652D90B1CFDE21900FC29A0 /* street_vicinity_loader.cpp in Sources */,
|
||||
|
|
Loading…
Add table
Reference in a new issue