00001 #include "StdAfx.h"
00002
00003 TariffParser::TariffParser(void)
00004 {
00005 }
00006
00007 TariffParser::~TariffParser(void)
00008 {
00009 }
00010
00011 void TariffParser::parse(std::string filename) {
00012 std::ifstream tariffData(filename.c_str());
00013 std::string currentTariff;
00014
00015 while (getline(tariffData, currentTariff)) {
00016 typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
00017 boost::char_separator<char> sep("|");
00018 tokenizer tokens(currentTariff, sep);
00019
00020 Tariff* tariff = new Tariff();
00021 tokenizer::iterator tok_iter = tokens.begin();
00022 tariff->setCountry(*tok_iter++);
00023 tariff->setDayTariff(boost::lexical_cast<float>(*tok_iter++));
00024 tariff->setEveningTariff(boost::lexical_cast<float>(*tok_iter++));
00025 tariff->setWeekendTariff(boost::lexical_cast<float>(*tok_iter));
00026
00027 tariffs.push_back(*tariff);
00028 }
00029 }
00030
00034 const std::vector<Tariff> TariffParser::getTariffs(void) const {
00035 return tariffs;
00036 }