X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/d084d9ae9f7bcd7f7d1926e7eeae921dbad49273..da469936612167d22ab66efe28cdc353fa1a1cb3:/projects/sgconf/tariffs.cpp diff --git a/projects/sgconf/tariffs.cpp b/projects/sgconf/tariffs.cpp index 663536fb..36f325ea 100644 --- a/projects/sgconf/tariffs.cpp +++ b/projects/sgconf/tariffs.cpp @@ -28,6 +28,18 @@ if (level == 0) return dash ? std::string(level * 4 - 2, ' ') + "- " : std::string(level * 4, ' '); } +std::string ChangePolicyToString(TARIFF::CHANGE_POLICY changePolicy) +{ +switch (changePolicy) + { + case ALLOW: return "allow"; + case TO_CHEAP: return "to_cheap"; + case TO_EXPENSIVE: return "to_expensive"; + case DENY: return "deny"; + } +return "unknown"; +} + std::string PeriodToString(TARIFF::PERIOD period) { switch (period) @@ -40,17 +52,17 @@ switch (period) return "unknown"; } -std::string TraffTypeToString(int traffType) +std::string TraffTypeToString(TARIFF::TRAFF_TYPE traffType) { switch (traffType) { - case TRAFF_UP: + case TARIFF::TRAFF_UP: return "upload"; - case TRAFF_DOWN: + case TARIFF::TRAFF_DOWN: return "download"; - case TRAFF_UP_DOWN: + case TARIFF::TRAFF_UP_DOWN: return "upload + download"; - case TRAFF_MAX: + case TARIFF::TRAFF_MAX: return "max(upload, download)"; } return "unknown"; @@ -67,18 +79,18 @@ else throw SGCONF::ACTION::ERROR("Period should be 'daily' or 'monthly'. Got: '" + value + "'"); } -void ConvTraffType(const std::string & value, RESETABLE & res) +void ConvTraffType(const std::string & value, RESETABLE & res) { std::string lowered = ToLower(value); lowered.erase(std::remove(lowered.begin(), lowered.end(), ' '), lowered.end()); if (lowered == "upload") - res = TRAFF_UP; + res = TARIFF::TRAFF_UP; else if (lowered == "download") - res = TRAFF_DOWN; + res = TARIFF::TRAFF_DOWN; else if (lowered == "upload+download") - res = TRAFF_UP_DOWN; + res = TARIFF::TRAFF_UP_DOWN; else if (lowered.substr(0, 3) == "max") - res = TRAFF_MAX; + res = TARIFF::TRAFF_MAX; else throw SGCONF::ACTION::ERROR("Traff type should be 'upload', 'download', 'upload + download' or 'max'. Got: '" + value + "'"); } @@ -214,7 +226,8 @@ std::cout << Indent(level, true) << "name: " << conf.name << "\n" << Indent(level) << "free mb: " << conf.free << "\n" << Indent(level) << "passive cost: " << conf.passiveCost << "\n" << Indent(level) << "traff type: " << TraffTypeToString(conf.traffType) << "\n" - << Indent(level) << "period: " << PeriodToString(conf.period) << "\n"; + << Indent(level) << "period: " << PeriodToString(conf.period) << "\n" + << Indent(level) << "change policy: " << CyangePolicyToString(conf.changePolicy) << "\n"; } void PrintTariff(const STG::GET_TARIFF::INFO & info, size_t level = 0)