-//#include <stdio.h>
+#include <cstdio> // snprintf
#include <cstring>
+#include "stg/tariffs.h"
#include "parser.h"
const int pt_mega = 1024 * 1024;
//-----------------------------------------------------------------------------
void PARSER_GET_TARIFFS::CreateAnswer()
{
-string s;
+std::string s;
char vs[100];
int hd, hn, md, mn;
break;
}
+ answerList->push_back("<Period value=\"" + TARIFF::PeriodToString(it->tariffConf.period) + "\"/>");
+
answerList->push_back("</tariff>");
}
answerList->push_back("</Tariffs>");
}
else
{
- string s;
+ std::string s;
strprintf(&s, "<AddTariff Result=\"Error. %s\"/>", tariffs->GetStrError().c_str());
answerList->push_back(s);
}
if (users->TariffInUse(tariffToDel))
{
- string s;
+ std::string s;
strprintf(&s, "<DelTariff Result=\"Error. Tariff \'%s\' cannot be deleted. Tariff in use.\"/>", tariffToDel.c_str());
answerList->push_back(s);
return;
}
else
{
- string s;
+ std::string s;
strprintf(&s, "<DelTariff Result=\"Error. %s\"/>", tariffs->GetStrError().c_str());
answerList->push_back(s);
}
// CHG TARIFF
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
-int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const string & s, int * params)
+int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const std::string & s, int * params)
{
char * str = new char[s.size() + 1];
char * p;
return 0;
}
//-----------------------------------------------------------------------------
-int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const string & s, double * params)
+int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const std::string & s, double * params)
{
char * str = new char[s.size() + 1];
char * p;
//-----------------------------------------------------------------------------
int PARSER_CHG_TARIFF::ParseStart(void *, const char * el, const char ** attr)
{
-char st[50];
double price[DIR_NUM];
int t[DIR_NUM];
depth++;
}
else
{
- string s;
+ std::string s;
if (strcasecmp(el, "PriceDayA") == 0)
{
for (int j = 0; j < DIR_NUM; j++)
{
+ char st[50];
snprintf(st, 50, "Time%d", j);
if (strcasecmp(el, st) == 0)
{
- int h1, m1, h2, m2;
+ int h1 = 0;
+ int m1 = 0;
+ int h2 = 0;
+ int m2 = 0;
if (ParseTariffTimeStr(attr[1], h1, m1, h2, m2) == 0)
{
td.dirPrice[j].hDay = h1;
}
return 0;
}
+
+ if (strcasecmp(el, "Period") == 0)
+ {
+ td.tariffConf.period = TARIFF::StringToPeriod(attr[1]);
+ return 0;
+ }
}
return -1;
}
}
else
{
- string s;
+ std::string s;
strprintf(&s, "<SetTariff Result=\"Change tariff error! %s\"/>", tariffs->GetStrError().c_str());
answerList->push_back(s);
return;