/home/martin/workspace/OpenStreetNav/src/osmdb/ToShowSelectCollection.cpp
Go to the documentation of this file.
00001 /*
00002  * ToShowSelectCollection.cpp
00003  *
00004  *  Created on: Dec 7, 2011
00005  *      Author: martin
00006  */
00007 
00008 #include "ToShowSelectCollection.h"
00009 #include <boost/property_tree/ptree.hpp>
00010 #include <boost/property_tree/xml_parser.hpp>
00011 #include "../sqllib/sqllib.h"
00012 
00013 namespace osmdb
00014 {
00015 
00016 ToShowSelectCollection::ToShowSelectCollection(const std::string& path_base, psql::Database& db, int min, int max)
00017 {
00018     offset = min;
00019     for (int i = min; i <= max; ++i)
00020     {
00021         std::ostringstream ss;
00022         ss << path_base;
00023         if (path_base[path_base.size()-1] != '/')
00024             ss << "/";
00025         ss << i << ".xml";
00026         boost::property_tree::ptree entries;
00027         boost::property_tree::xml_parser::read_xml(ss.str(), entries, boost::property_tree::xml_parser::trim_whitespace);
00028         statements.push_back(sqllib::get_toshow_edges_select(entries, db));
00029         select_statements.push_back(sqllib::get_selected_edges_select(entries, db));
00030     }
00031 }
00032 
00033 psql::Statement<psql::BindTypes<double, double, double, double>, psql::RetTypes<double, double, double, double, double, double, double, double, double, int, int> >& ToShowSelectCollection::get_edges_for_zoom(int zoom)
00034 {
00035     return statements[zoom-offset];
00036 }
00037 
00038 psql::Statement<psql::BindTypes<double, double, double, double>, psql::RetTypes<int64_t, double, double, double, double, double, int, int> >& ToShowSelectCollection::get_select_edges(int zoom)
00039 {
00040     return select_statements[zoom-offset];
00041 }
00042 
00043 }
00044 
00045 
00046 /* namespace osmdb */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines