X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/3829fda4078489c674b3761f296f17cc13cd82d0..1487578f4887f49661320e24e311074a9af36f80:/stglibs/srvconf.lib/parsers/get_tariff.cpp?ds=sidebyside diff --git a/stglibs/srvconf.lib/parsers/get_tariff.cpp b/stglibs/srvconf.lib/parsers/get_tariff.cpp index a24f287d..4844fd6c 100644 --- a/stglibs/srvconf.lib/parsers/get_tariff.cpp +++ b/stglibs/srvconf.lib/parsers/get_tariff.cpp @@ -97,28 +97,22 @@ else return true; } +template 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": +if (type == "allow") value = TARIFF::ALLOW; - break; - case "to_cheap": +else if (type == "to_cheap") value = TARIFF::TO_CHEAP; - break; - case "to_expensive": +else if (type == "to_expensive") value = TARIFF::TO_EXPENSIVE; - break; - case "deny": +else if (type == "deny") value = TARIFF::DENY; - break; - default: - return false; - } +else + return false; return true; } @@ -156,6 +150,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);