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
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2012-02-13 17:07:20 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:34:02 +0300
commit4c70ee2accd32817fb9e8666536b684d30099591 (patch)
tree55282fea213d83e366aebf0d28dccf6ffd88e493 /indexer/categories_holder.cpp
parent2ef07b3d4bc18f555e001ea197f85344616ff9e8 (diff)
[search] Load categories.txt without intermediate strings.
Diffstat (limited to 'indexer/categories_holder.cpp')
-rw-r--r--indexer/categories_holder.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/indexer/categories_holder.cpp b/indexer/categories_holder.cpp
index 4078c09e8f..21e393cced 100644
--- a/indexer/categories_holder.cpp
+++ b/indexer/categories_holder.cpp
@@ -4,6 +4,7 @@
#include "../coding/multilang_utf8_string.hpp"
#include "../coding/reader.hpp"
+#include "../coding/reader_streambuf.hpp"
#include "../base/string_utils.hpp"
#include "../base/logging.hpp"
@@ -29,7 +30,7 @@ enum State {
} // unnamed namespace
-size_t CategoriesHolder::LoadFromStream(string const & buffer)
+size_t CategoriesHolder::LoadFromStream(istream & s)
{
m_categories.clear();
@@ -40,10 +41,9 @@ size_t CategoriesHolder::LoadFromStream(string const & buffer)
Classificator const & c = classif();
- istringstream stream(buffer);
- while (stream.good())
+ while (s.good())
{
- getline(stream, line);
+ getline(s, line);
strings::SimpleTokenizer iter(line, ":|");
switch (state)
@@ -123,10 +123,9 @@ CategoriesHolder::CategoriesHolder()
{
}
-CategoriesHolder::CategoriesHolder(Reader const & reader)
+CategoriesHolder::CategoriesHolder(Reader * reader)
{
- string buffer;
- reader.ReadAsString(buffer);
- LoadFromStream(buffer);
+ ReaderStreamBuf buffer(reader);
+ istream s(&buffer);
+ LoadFromStream(s);
}
-