From aeab46c84fabb306bf33580511b968a51787e68f Mon Sep 17 00:00:00 2001 From: vng Date: Thu, 24 Nov 2011 23:49:10 +0300 Subject: [PATCH] Add binary drawing rules generation from text rules file. --- defines.hpp | 3 +++ generator/generator_tool/generator_tool.cpp | 10 ++++++++++ indexer/classificator_loader.cpp | 12 +++++------- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/defines.hpp b/defines.hpp index 54e20d6aea..c5659ab818 100644 --- a/defines.hpp +++ b/defines.hpp @@ -22,6 +22,9 @@ #define PACKED_POLYGONS_FILE "packed_polygons.bin" #define PACKED_POLYGONS_INFO_TAG "info" +#define DRAWING_RULES_TXT_FILE "drules_proto.txt" +#define DRAWING_RULES_BIN_FILE "drules_proto.bin" + /// How many langs we're supporting on indexing stage #define MAX_SUPPORTED_LANGUAGES 64 diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp index 843a800d59..7940597583 100644 --- a/generator/generator_tool/generator_tool.cpp +++ b/generator/generator_tool/generator_tool.cpp @@ -9,6 +9,7 @@ #include "../unpack_mwm.hpp" #include "../generate_info.hpp" +#include "../../indexer/drawing_rules.hpp" #include "../../indexer/classificator_loader.hpp" #include "../../indexer/data_header.hpp" #include "../../indexer/features_vector.hpp" @@ -94,6 +95,15 @@ int main(int argc, char ** argv) // Make a classificator if (FLAGS_generate_classif) { + drule::RulesHolder & rules = drule::rules(); + + string buffer; + ModelReaderPtr(pl.GetReader(DRAWING_RULES_TXT_FILE)).ReadAsString(buffer); + + rules.LoadFromTextProto(buffer); + + ofstream s((path + DRAWING_RULES_BIN_FILE).c_str(), ios::out | ios::binary); + rules.SaveToBinaryProto(buffer, s); } // Generating intermediate files diff --git a/indexer/classificator_loader.cpp b/indexer/classificator_loader.cpp index 5ad83f25e3..6b2d80026e 100644 --- a/indexer/classificator_loader.cpp +++ b/indexer/classificator_loader.cpp @@ -2,7 +2,9 @@ #include "classificator.hpp" #include "drawing_rules.hpp" -#include "../../platform/platform.hpp" +#include "../defines.hpp" + +#include "../platform/platform.hpp" #include "../coding/reader_streambuf.hpp" @@ -67,7 +69,7 @@ namespace classificator try { // Load from protobuffer binary file. - ReaderStreamBuf buffer(p.GetReader("drules_proto.bin")); + ReaderStreamBuf buffer(p.GetReader(DRAWING_RULES_BIN_FILE)); istream s(&buffer); rules.LoadFromBinaryProto(s); @@ -78,13 +80,9 @@ namespace classificator { // Load from protobuffer text file. string buffer; - ModelReaderPtr(p.GetReader("drules_proto.txt")).ReadAsString(buffer); + ModelReaderPtr(p.GetReader(DRAWING_RULES_TXT_FILE)).ReadAsString(buffer); rules.LoadFromTextProto(buffer); - - // Uncomment this to save actual drawing rules to binary proto format. - //ofstream s(p.WritablePathForFile("drules_proto.bin").c_str(), ios::out | ios::binary); - //rules.SaveToBinaryProto(buffer, s); } catch (Reader::OpenException const &) {