X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/364ec046e6da20abac51adc7c04e96ebb5814f5c..8e4f33741f54f48c28f04e74f1f3c0757723c111:/stglibs/srvconf.lib/parsers/get_tariff.cpp?ds=inline diff --git a/stglibs/srvconf.lib/parsers/get_tariff.cpp b/stglibs/srvconf.lib/parsers/get_tariff.cpp index 0804b269..d929b266 100644 --- a/stglibs/srvconf.lib/parsers/get_tariff.cpp +++ b/stglibs/srvconf.lib/parsers/get_tariff.cpp @@ -97,6 +97,31 @@ else return true; } +bool GetChangePolicy(const char ** attr, T & value, const std::string & attrName) +{ +if (!CheckValue(attr, attrName)) + return false; +std::string type(attr[1]); +switch (type) + { + case "allow": + value = TARIFF::ALLOW; + break; + case "to_cheap": + value = TARIFF::TO_CHEAP; + break; + case "to_expensive": + value = TARIFF::TO_EXPENSIVE; + break; + case "deny": + value = TARIFF::DENY; + break; + default: + return false; + } +return true; +} + template bool GetSlashedValue(const char ** attr, A & array, T A::value_type:: * field) { @@ -131,6 +156,7 @@ GET_TARIFF::PARSER::PARSER(CALLBACK f, void * d, const std::string & e) AddParser(propertyParsers, "free", info.tariffConf.free); AddParser(propertyParsers, "traffType", info.tariffConf.traffType, GetTraffType); AddParser(propertyParsers, "period", info.tariffConf.period, GetPeriod); + AddParser(propertyParsers, "changePolicy", info.tariffConf.changePolicy, GetChangePolicy); for (size_t i = 0; i < DIR_NUM; ++i) AddParser(propertyParsers, "time" + unsigned2str(i), info.dirPrice[i], GetTimeSpan); AddAOSParser(propertyParsers, "priceDayA", info.dirPrice, &DIRPRICE_DATA::priceDayA, GetSlashedValue);