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

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/search
diff options
context:
space:
mode:
authorLev Dragunov <l.dragunov@corp.mail.ru>2015-08-21 13:00:55 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 03:02:08 +0300
commitc9b9ebc2569d079fe44cd2ef16b6909f12fb0301 (patch)
tree5d3d0c6e81bce6b22a8e71e60d5a4ea13b1e6061 /search
parentbd101de1a0a3448b490c555ec0733300b793ec3a (diff)
Change the last queries conatiner to the list.
Diffstat (limited to 'search')
-rw-r--r--search/query_saver.cpp5
-rw-r--r--search/query_saver.hpp8
-rw-r--r--search/search_tests/query_saver_tests.cpp33
3 files changed, 26 insertions, 20 deletions
diff --git a/search/query_saver.cpp b/search/query_saver.cpp
index d6339ca968..2cf765d87e 100644
--- a/search/query_saver.cpp
+++ b/search/query_saver.cpp
@@ -16,7 +16,6 @@ namespace search
{
QuerySaver::QuerySaver()
{
- m_topQueries.reserve(kMaxSuggestCount);
Load();
}
@@ -30,10 +29,10 @@ void QuerySaver::SaveNewQuery(string const & query)
if (it != m_topQueries.end())
m_topQueries.erase(it);
else if (m_topQueries.size() >= kMaxSuggestCount)
- m_topQueries.erase(m_topQueries.begin());
+ m_topQueries.pop_back();
// Add new query and save it to drive.
- m_topQueries.push_back(query);
+ m_topQueries.push_front(query);
Save();
}
diff --git a/search/query_saver.hpp b/search/query_saver.hpp
index 161e0b1923..2d4071d8f0 100644
--- a/search/query_saver.hpp
+++ b/search/query_saver.hpp
@@ -1,3 +1,4 @@
+#include "std/list.hpp"
#include "std/string.hpp"
#include "std/vector.hpp"
@@ -9,8 +10,9 @@ class QuerySaver
public:
QuerySaver();
void SaveNewQuery(string const & query);
- /// Returns last save query from oldest to newest queries.
- vector<string> const & GetTopQueries() const { return m_topQueries; }
+ /// Returns several last saved queries from newest to oldest query.
+ /// @see kMaxSuggestCount in implementation file.
+ list<string> const & GetTopQueries() const { return m_topQueries; }
/// Clear last queries storage. All data will be lost.
void Clear();
@@ -22,6 +24,6 @@ private:
void Save();
void Load();
- vector<string> m_topQueries;
+ list<string> m_topQueries;
};
} // namespace seatch
diff --git a/search/search_tests/query_saver_tests.cpp b/search/search_tests/query_saver_tests.cpp
index 2c42cb60f4..55c5eb3bd0 100644
--- a/search/search_tests/query_saver_tests.cpp
+++ b/search/search_tests/query_saver_tests.cpp
@@ -16,16 +16,18 @@ namespace search
UNIT_TEST(QuerySaverFogTest)
{
QuerySaver saver;
+ saver.Clear();
saver.SaveNewQuery(record1);
- vector<string> const & result = saver.GetTopQueries();
+ list<string> const & result = saver.GetTopQueries();
TEST_EQUAL(result.size(), 1, ());
- TEST_EQUAL(result[0], record1, ());
+ TEST_EQUAL(result.front(), record1, ());
saver.Clear();
}
UNIT_TEST(QuerySaverClearTest)
{
QuerySaver saver;
+ saver.Clear();
saver.SaveNewQuery(record1);
TEST_GREATER(saver.GetTopQueries().size(), 0, ());
saver.Clear();
@@ -35,20 +37,21 @@ UNIT_TEST(QuerySaverClearTest)
UNIT_TEST(QuerySaverOrderingTest)
{
QuerySaver saver;
+ saver.Clear();
saver.SaveNewQuery(record1);
saver.SaveNewQuery(record2);
{
- vector<string> const & result = saver.GetTopQueries();
+ list<string> const & result = saver.GetTopQueries();
TEST_EQUAL(result.size(), 2, ());
- TEST_EQUAL(result[0], record1, ());
- TEST_EQUAL(result[1], record2, ());
+ TEST_EQUAL(result.back(), record1, ());
+ TEST_EQUAL(result.front(), record2, ());
}
saver.SaveNewQuery(record1);
{
- vector<string> const & result = saver.GetTopQueries();
+ list<string> const & result = saver.GetTopQueries();
TEST_EQUAL(result.size(), 2, ());
- TEST_EQUAL(result[1], record1, ());
- TEST_EQUAL(result[0], record2, ());
+ TEST_EQUAL(result.front(), record1, ());
+ TEST_EQUAL(result.back(), record2, ());
}
saver.Clear();
}
@@ -56,6 +59,7 @@ UNIT_TEST(QuerySaverOrderingTest)
UNIT_TEST(QuerySaverSerializerTest)
{
QuerySaver saver;
+ saver.Clear();
saver.SaveNewQuery(record1);
saver.SaveNewQuery(record2);
vector<char> data;
@@ -65,25 +69,26 @@ UNIT_TEST(QuerySaverSerializerTest)
TEST_EQUAL(saver.GetTopQueries().size(), 0, ());
saver.Deserialize(string(data.begin(), data.end()));
- vector<string> const & result = saver.GetTopQueries();
+ list<string> const & result = saver.GetTopQueries();
TEST_EQUAL(result.size(), 2, ());
- TEST_EQUAL(result[0], record1, ());
- TEST_EQUAL(result[1], record2, ());
+ TEST_EQUAL(result.back(), record1, ());
+ TEST_EQUAL(result.front(), record2, ());
}
UNIT_TEST(QuerySaverPersistanceStore)
{
{
QuerySaver saver;
+ saver.Clear();
saver.SaveNewQuery(record1);
saver.SaveNewQuery(record2);
}
{
QuerySaver saver;
- vector<string> const & result = saver.GetTopQueries();
+ list<string> const & result = saver.GetTopQueries();
TEST_EQUAL(result.size(), 2, ());
- TEST_EQUAL(result[0], record1, ());
- TEST_EQUAL(result[1], record2, ());
+ TEST_EQUAL(result.back(), record1, ());
+ TEST_EQUAL(result.front(), record2, ());
saver.Clear();
}
}